public MyDoublyLinkedList(int value) { var firstNode = new DoubleNode(value); _head = firstNode; _tail = firstNode; _size = 1; }
public void Prepend(int value) { var newNode = new DoubleNode(value); newNode.Next = _head; _head.Previous = newNode; _head = newNode; _size++; }
public void Append(int value) { var newNode = new DoubleNode(value); newNode.Previous = _tail; _tail.Next = newNode; _tail = newNode; _size++; }
public void Insert(int index, int value) { if (index == 0) { Prepend(value); return; } var newNode = new DoubleNode(value); var currentNode = GetNode(index); var prevNode = currentNode.Previous; newNode.Next = currentNode; newNode.Previous = prevNode; currentNode.Previous = newNode; prevNode.Next = newNode; _size++; }