Data Structures19 sections · 729 units
Open in Course

Doubly Linked Lists

Pointers in both directions

A doubly linked list node has two pointers: pseudocode class DListNode: val: integer prev: DListNode or null next: DListNode or null The prev pointer enables backward traversal and simplifies deletion.

To delete a node when you only have a reference to that node: ```pseudocode node.prev.next = node.next node.next.prev = node.prev


The cost is extra memory (one more pointer per node) and more complex insertion/deletion code (you must update both directions). 

Doubly linked lists are needed for implementing LRU caches. Time: $O(1)$. Space: $O(n)$.