AlgoPrecision

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
12headcurrent3624next48

Time

O(n)

Space

O(1)

Step Note

Split the sorted values into two sorted demo lists.

Details
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
}