Reverse a singly linked list and return the new head.
Walk the list with prev and curr. Save curr.next, point curr back at prev, then move both one step forward.
1function reverseList(head: ListNode | null): ListNode | null {2let prev: ListNode | null = null, curr = head;3while (curr) {4const next = curr.next;5curr.next = prev;6prev = curr;7curr = next;8}9return prev;10}
prev = null, curr = head.
Space: play/pause · ←/→: step