Three pointers: prev, curr, next. Reverse each arrow as you traverse.
function reverseList(head): prev = null curr = head while curr: next = curr.next curr.next = prev prev = curr curr = next return prev
time, space.
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
The approach
Three pointers: prev, curr, next. Reverse each arrow as you traverse.
function reverseList(head): prev = null curr = head while curr: next = curr.next curr.next = prev prev = curr curr = next return prev
time, space.