public void Add(DoublyLinkedListNode <T> newNode) { if (head == null) // if list is empty { head = newNode; head.Next = head; head.Prev = head; } else { var tail = head.Prev; head.Prev = newNode; tail.Next = newNode; newNode.Prev = tail; newNode.Next = head; } }
public void Remove(DoublyLinkedListNode <T> removeNode) { if (head == null || removeNode == null) { return; } if (removeNode == head && head == head.Next) { head = null; } else { removeNode.Prev.Next = removeNode.Next; removeNode.Next.Prev = removeNode.Prev; } removeNode = null; }
public void Add(DoublyLinkedListNode <T> newNode) { if (head == null) // if list is empty { head = newNode; } else { var current = head; while (current != null && current.Next != null) { current = current.Next; } // connect both side node current.Next = newNode; newNode.Prev = current; newNode.Next = null; } }