Inserting a new element in a doubly linked list is very similar to a linked list. The difference is that in the linked list, we only control one pointer (next), and in the doubly linked list we have to control both the next and prev (previous) properties. For the DoublyLinkedList class, we will overwrite the insert method, meaning we will apply a different behavior than the one from the LinkedList class.
Here, we have the algorithm to insert a new element at any position:
insert(element, index) { if (index >= 0 && index <= this.count) { const node = new DoublyNode(element); let current = this.head; if (index === 0) { if (this.head == null) { // {1} NEW this.head = node; this.tail = node; } else { node.next ...