A linked list stores elements as nodes where each node points to the next. Unlike arrays, elements aren't contiguous in memory — insertion and deletion are O(1) at known positions (no shifting needed), but accessing the nth element requires traversing from the head: O(n).

How Linked List Works

Singly linked: each node has data + pointer to next. Doubly linked: each node also points to previous (enables reverse traversal). Used in: browser history (back/forward), undo systems, LRU caches, and as building blocks for stacks and queues.

Key Concepts

  • Node — Contains data and a pointer (reference) to the next node — the building block of linked lists
  • Head/Tail — Head is the first node; tail is the last node — traversal starts from the head
  • Singly vs Doubly — Singly: forward-only traversal. Doubly: bidirectional traversal — more memory but more flexible
  • O(1) Insertion/Deletion — Adding or removing at a known position doesn't require shifting other elements

Learn Linked List — Top Videos

Linked List Educators

Frequently Asked Questions

Array vs linked list?

Arrays for indexed access and iteration. Linked lists for frequent insertion/deletion at arbitrary positions. In practice, arrays (and dynamic arrays like ArrayList) are almost always faster due to CPU cache locality.