Removing elements from any position

Removing elements from a doubly linked list is also very similar to a linked list. The only difference is that we need to set the previous pointer as well. Let's take a look at the implementation:

removeAt(index) {  if (index >= 0 && index < this.count) {    let current = this.head;    if (index === 0) {      this.head = current.next; // {1}      // if there is only one item, then we update tail as well NEW      if (this.count === 1) { // {2}         this.tail = undefined;      } else {        this.head.prev = undefined; // {3}      }    } else if (index === this.count - 1) { // last item NEW      current = this.tail; // {4}      this.tail = current.prev; // {5}      this.tail.next = undefined; // {6}    } else {      current = this.getElementAt(index); // {7} const previous ...

Get Learning JavaScript Data Structures and Algorithms - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.