Linked List Manipulation Cheat Sheet
You move a few pointers down the list and rewire the next pointers in place.

Earn the full sheet below.
When to use it
- You need to reverse, reorder, or remove nodes without extra space for a new list.
- The problem talks about next pointers, not indices, so array tricks don't apply.
- A 'convert to a list' solution works but costs O(n) space; this pattern uses fixed pointers instead.
- Locating a node relative to another (nth from the end, the middle) often pairs this with Two Pointers.
What's on the sheet
The guard rails never move. Step 3 does each problem's rewiring.
- Define the node. A node only knows its value and what comes next.
- Guard the edges. An empty or single-node list has nothing left to do.
- Walk and Rewire. Each problem rewires differently; the walk is fixed.
- Return. prev, not curr, is the new head.
Watch out
- Save curr.next into temp before overwriting curr.next = prev, or you'll lose the rest of the list.
- Removing at the head needs a dummy node. Remove Nth Node From End of List does this, and its fast pointer walks n + 1 steps ahead before both move together.
How to earn it
Solve half of the Linked List Manipulation problems and the sheet is yours. A free account works fine, and everyone earns their sheets the same way.
Want to see a finished sheet first? Preview the Two Pointers sample.
Every pattern has a sheet. See the full set.