Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,844 questions

55,671 answers

573 users

How to reverse a singly linked list in-place in JavaScript

1 Answer

0 votes
// Node class for singly linked list
class ListNode {
  constructor(value) {
    this.value = value;   // data stored in the node
    this.next = null;     // reference to the next node
  }
}

// Reverse the linked list in-place
function reverseList(head) {
  let prev = null;        // will become the new head
  let current = head;     // pointer to traverse the list

  while (current !== null) {
    const nextNode = current.next; // save next node
    current.next = prev;           // reverse the link
    prev = current;                // move prev forward
    current = nextNode;            // move current forward
  }

  return prev; // prev is the new head
}

// Print the linked list
function printList(head) {
  let temp = head;
  let output = "";

  while (temp !== null) {
    output += temp.value;
    if (temp.next !== null) output += " -> ";
    temp = temp.next;
  }

  console.log(output);
}

// Build a sample list: 1 -> 2 -> 3 -> 4 -> 5
let head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);

console.log("Original list:");
printList(head);

// Reverse the list
head = reverseList(head);

console.log("Reversed list:");
printList(head);



/*
run:

Original list:
1 -> 2 -> 3 -> 4 -> 5
Reversed list:
5 -> 4 -> 3 -> 2 -> 1

*/

 



answered Jun 30 by avibootz
...