51 / 75
Medium
Reorder List
#51linked-listtwo-pointersrecursion
Find middle, reverse second half, then merge alternating nodes from both halves.
Example:
Input:
head=[1,2,3,4,5]Output:
[1,5,2,4,3]Common Mistakes:
- Not breaking connection at middle (causes infinite loop)
- Incorrect merging logic (losing nodes)
- Forgetting to store temp pointers before rewiring
- Not handling odd/even length lists correctly
Notes:
Three-step problem. Time O(n), Space O(1). Pattern: find middle, reverse, merge is common in linked list problems.
💻
Java Solution Hidden
Enable “Show Full Solution” to view the code
Find middle, reverse second half, then merge alternating nodes from both halves.
Example:
Input:
head=[1,2,3,4,5]Output:
[1,5,2,4,3]Common Mistakes:
- Not breaking connection at middle (causes infinite loop)
- Incorrect merging logic (losing nodes)
- Forgetting to store temp pointers before rewiring
- Not handling odd/even length lists correctly
Notes:
Three-step problem. Time O(n), Space O(1). Pattern: find middle, reverse, merge is common in linked list problems.
51/75
Reorder List