Segregate even and odd nodes in a Linked List
Rearrange a linked list so all even-valued nodes come before odd-valued nodes.
Example: 17→15→8→12→10→5→4 → 8→12→10→4→17→15→5
Sample Input
—
Sample Output
—
Constraints
- 1 <= N <= 10^4
Topics
Two Lists Merge
function segregateEvenOdd(head) {
const even = {next:null}, odd = {next:null};
let e = even, o = odd, curr = head;
while (curr) {
if (curr.val % 2 === 0) { e.next = curr; e = e.next; }
else { o.next = curr; o = o.next; }
curr = curr.next;
}
o.next = null; e.next = odd.next;
return even.next;
}
Time: O(n) | Space: O(1)
Saved in this browser only. Private to you.