Reorder List – Solution & Complexity
Solution Walkthrough
1. Recognize the Pattern
The key pattern is: Split, reverse the second half, then weave halves. Identify the state and invariant before coding.
2. Build the Algorithm
Advance one state transition at a time. Mark or update state before exploring dependent work.
3. Check Edge Cases
Test empty or minimal input, skewed shapes, duplicates where allowed, and impossible outcomes.
4. Solution and Complexity
Time: O(n). Space: O(1).
Java/Go/Rust below are reference solutions for learning the pattern in those languages; only Python and JavaScript can be run and submitted for this problem, since the remote judge doesn't support the ListNode structure yet.