There are three main types: Singly Linked List (one-way, forward only), Doubly Linked List (two-way, forward and backward), and Circular Linked List (the end connects back to the start, forming a loop).
Singly is like a one-way street — you can only go forward. Doubly is like a two-way street with a back button. Circular is like a roundabout — you keep going in circles.
You can go forward, but you can't look back.
Each node has a "Back" button (Prev Pointer).
The end connects back to the start. Infinite Mario Kart track!
1. Singly Linked List (One-Way Street)
Each node has ONE pointer: next. You can only move forward. To go back, you must start from the head again.
2. Doubly Linked List (Two-Way Street)
Each node has TWO pointers: next (forward) and prev (backward). You can navigate both directions.
3. Circular Linked List (The Loop)
The last node's next points back to the head (or first node). No NULL at the end — it's a circle.
Each type solves different problems. Singly is memory-efficient for one-way traversal. Doubly enables backward navigation (like browser history). Circular is perfect for round-robin scheduling or rotating buffers.
"When should you use a doubly linked list over a singly linked list?"
When you need backward traversal (like browser back button) or when you need to delete a node in O(1) time given only a pointer to that node. Otherwise, singly is more memory-efficient.