April 2018
Beginner to intermediate
426 pages
10h 19m
English
To remove an element from a circular linked list, we only need to worry about the second scenario, which changes the head element of the list. The code for the removeAt method is presented as follows:
removeAt(index) { if (index >= 0 && index < this.count) { let current = this.head; if (index === 0) { if (this.size() === 1) { this.head = undefined; } else { const removed = this.head; // {1} current = this.getElementAt(this.size()); // {2} NEW this.head = this.head.next; // {3} current.next = this.head; // {4} current = removed; // {5} } } else { // no need to update last element for circular list const previous = this.getElementAt(index - 1); current = previous.next; previous.next = current.next; } this.count--; ...