There are different types of linked list. In this section, we are going to cover the doubly linked list. The difference between a doubly linked list and a normal linked list is that in a linked list we make the link from one node to the next one only, while in a doubly linked list, we have a double link: one for the next element and one for the previous element, as shown in the following diagram:
Let's get started with the changes that are needed to implement the DoublyLinkedList class:
class DoublyNode extends Node { // {1}
constructor(element, next, prev) {
super(element, next); // {2}
this.prev = prev; // {3} NEW
}
}
class DoublyLinkedList extends LinkedList { // {4}
constructor(equalsFn = defaultEquals) {
super(equalsFn); // {5}
this.tail = undefined; // {6} NEW
}
}
As the DoublyLinkedList class is a special type of LinkedList, we will...