private bool FindElToRemove(Node <T> head, T el) { if (comparer.Compare(head.Current, el) > 0) { if (head.Prev == null) { return(false); } return(FindElToRemove(head.Prev, el)); } else if (comparer.Compare(head.Current, el) < 0) { if (head.Next == null) { return(false); } return(FindElToRemove(head.Next, el)); } if (head.Remove(ref Head)) { Count--; return(true); } return(false); }