Skip to main content

reverseList

// interface ListNode {
// val: number;
// next: ListNode | null;
// }

/**
* Reverse a singly linked list.
*/
// Time: O(n)
// Space: O(1)
export default function reverseList(
head,
){
let prev = null;
let curr = head;

while (curr !== null) {
// Save next node before breaking the link
const next = curr.next;

// Reverse pointer
curr.next = prev;

// Move pointers forward
prev = curr;
curr = next;
}

// prev becomes the new head
return prev;
}