Algorithms / Linked List Pointer Updates
Least You Need to Know: Linked-List Pointer Updates and Local Rewiring
Linked-list problems are about **preserving access while changing arrows**. Because each node only knows its next pointer, interviews reward students who save the next node before rewiring and who reason locally about what each pointer update does to the rest of the list.
The least you need to know
- In a singly linked list, changing one `next` pointer can disconnect the remaining suffix if you did not save it first.
- Pointer rewiring is local: you usually only touch a constant number of nodes at a time.
- When the first node changes, you often need to update the head pointer too.
- Null checks matter because tail nodes do not have a valid `next` node.
- A hand-drawn picture of arrows is often the fastest way to reason safely.
Key notation
head
pointer to the first node
node.next
the next node after node
saved_next
temporarily stored successor before rewiring
Tiny worked example
- Suppose `head -> 3 -> 5 -> 8` and you want to remove the node `5`.
- First keep a pointer to the node before it or to the current node being examined.
- Then redirect that previous node so it points to `8` instead of `5`.
- The key idea is that the rest of the list stays reachable because you rewired the correct arrow.
Common mistakes
- Students often overwrite `current.next` before remembering where the rest of the list went.
- Students often forget that changing the first node requires returning a new head.
- Students often dereference `current.next` without first checking whether `current` is null.
How to recognize this kind of problem
- The prompt talks about inserting, deleting, or splicing nodes from a singly linked list.
- The algorithm only needs local pointer changes, not random indexing.
- A picture of arrows makes the state easier to verify than array-style reasoning.