public void Remove(LinkedListNode2 <T> remove) { if (remove == null) { return; } for (LinkedListNode2 <T> node = First; node != null; node = node.Next) { if (node == remove) { if (node == First) { First = node.Next; } if (node == Last) { Last = node.Previous; } if (node.Previous != null) { node.Previous.Next = node.Next; } if (node.Next != null) { node.Next.Previous = node.Previous; } } } }
private void AddRoot(LinkedListNode2 <T> node) { if (node == null) { throw new ArgumentNullException(); } First = node; Last = node; node.Next = null; node.Previous = null; }
public void AddFirst(LinkedListNode2 <T> node) { if (node == null) { throw new ArgumentNullException(); } if (First == null) { AddRoot(node); } else { node.Previous = null; node.Next = First; First.Previous = node; First = node; } }
public LinkedList2() { First = null; Last = null; }