Reorder a list front and back
Mediumlinked listtwo pointersfast and slow pointers
The list is L0 → L1 → … → Ln. Reorder it to L0 → Ln → L1 → Ln-1 → L2 → … by moving nodes (not changing values), and return its head.
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
- 1 ≤ number of nodes ≤ 5·10⁴
- 1 ≤ Node.val ≤ 1000
Submit checks your solution against 8 tests, including hidden ones.
// Provided by the judge: keep these definitions
class ListNode {
constructor(val = 0, next = null) {
this.val = val
this.next = next
}
}
/**
* @param {ListNode|null} head
* @return {ListNode|null}
*/
function reorderList(head) {
}