Practice Problem

Reorder List

Difficulty: Medium

Reorder a linked list from L0 -> L1 -> ... -> Ln to L0 -> Ln -> L1 -> Ln-1 -> L2 -> Ln-2 -> ... in-place.

Reorder List

You are given the head of a singly linked list. The list can be represented as:

L0 -> L1 -> ... -> Ln-1 -> Ln

Reorder it to:

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.

Examples

Example 1:

Input: head = [1, 2, 3, 4]
Output: [1, 4, 2, 3]

Example 2:

Input: head = [1, 2, 3, 4, 5]
Output: [1, 5, 2, 4, 3]

Constraints

  • The number of nodes in the list is in the range [1, 5 * 10^4].
  • 1 <= Node.val <= 1000

Expected Complexity

  • Time: O(n)
  • Space: O(1)
MEDIUM
Singly Linked List
Fast/Slow Pointers
Two Pointers
Intermediate

0 views

Solution

Hints

Hint 1
Hint 2
Premium
Hint 3
Premium
Hint 4
Premium