Linked List Visualizer
Pointer Reversal
Trace prev, current, and next pointers as each node rewires its next reference to reverse the list in place.
O(n + m) time / O(1) extra space
Time
O(n)
Space
O(1)
Step Note
Split the sorted values into two sorted demo lists.
function mergeTwoLists(a: ListNode | null, b: ListNode | null) {
const dummy = new ListNode(0)
let tail = dummy
while (a !== null && b !== null) {
if (a.value <= b.value) {
tail.next = a
a = a.next
} else {
tail.next = b
b = b.next
}
tail = tail.next
}
tail.next = a ?? b
return dummy.next
}