Back to Practice Dashboard
Top 150 InterviewEasy
Reorder List
Learn how to solve the 'Reorder List' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
Easy
You are given the head of a singly linked list. The list can be represented as:
L0 → L1 → … → Ln-1 → Ln
Reorder the list to be in the following form:
L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …
You may not modify the values in the list's nodes. Only nodes themselves may be changed.
The linked list is represented as a Python list. Implement a function reorderList(head: list) -> list that returns the reordered list.
Constraints
- •The number of nodes in the list is in the range [1, 50000]
- •1 <= Node.val <= 1000
Examples
Example 1
Input
[1,2,3,4]
Output
[1,4,2,3]
Explanation
The list 1->2->3->4 is reordered to 1->4->2->3.
Example 2
Input
[1,2,3,4,5]
Output
[1,5,2,4,3]
Explanation
The list 1->2->3->4->5 is reordered to 1->5->2->4->3.
Need a Hint?
Analyze the input constraints. Try sorting first (O(n log n)) or using a hash map/set to track seen elements in O(n) time.
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.