Reorder List

medium

Reorder list L0->L1->...->Ln to L0->Ln->L1->Ln-1->...

Reorder List

Key Insight

Find middle → reverse second half → merge alternating = three classic patterns in one

Step 1Original List
Goal: L0→Ln→L1→Ln-1→...
1
2
3
4
5
null

We need to reorder [1,2,3,4,5] into [1,5,2,4,3].

1 / 6
Practice the Code

Step-by-Step Walkthrough: Reorder List

Find middle → reverse second half → merge alternating = three classic patterns in one

  1. Original List

    We need to reorder [1,2,3,4,5] into [1,5,2,4,3].

  2. Find Middle

    Use slow/fast pointers. Middle is node 3. Split into [1,2,3] and [4,5].

  3. Reverse Second Half

    Reverse [4,5] to get [5,4].

  4. Merge Step 1

    Interleave: take 1 from first, 5 from second, 2 from first, 4 from second.

  5. Merge Step 2

    Node 3 is the last remaining node, attached at the end.

  6. Done

    List reordered in-place to [1,5,2,4,3].