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) time / O(1) space
12headcurrentnext243648

Time

O(n)

Space

O(1)

Step Note

Use slow and fast pointers. Slow moves one step, fast moves two.

Details
function middleNode(head: ListNode | null) {
  let slow = head
  let fast = head
  while (fast !== null && fast.next !== null) {
    slow = slow.next
    fast = fast.next.next
  }
  return slow
}