JavaScript Program To Delete Alternate Nodes Of A Linked List


We will be writing a JavaScript program to delete alternate nodes of a linked list. We will be utilizing a while loop to traverse the linked list while keeping a track of the current and previous node. In each iteration of the loop, we will be skipping the current node and linking the previous node directly to the next node, effectively deleting the current node from the list. This process will be repeated until all the alternate nodes have been deleted from the linked list.

Approach

  • Traverse the linked list from head to end.

  • For every node, store its next node.

  • Delete the next node of the current node.

  • Update the next reference of the current node to be the next of the next node.

  • Move to the next node, which is now the next of the next node.

  • Repeat this process until the end of the linked list is reached.

  • Finally, return the head of the linked list after all alternate nodes have been deleted.

Example

Here is a complete example of deleting alternate nodes of a linked list in JavaScript −

// Linked List Node
class Node {
   constructor(data) {
      this.data = data;
      this.next = null;
   }
}

// Linked List class
class LinkedList {
   constructor() {
      this.head = null;
   }
   
   // Method to delete alternate nodes
   deleteAlternate() {
      let current = this.head;
      while (current !== null && current.next !== null) {
         current.next = current.next.next;
         current = current.next;
      }
   }
   
   // Method to print the linked list
   printList() {
      let current = this.head;
      while (current !== null) {
         console.log(current.data);
         current = current.next;
      }
   }
}
// create a linked list
let list = new LinkedList();
list.head = new Node(1);
list.head.next = new Node(2);
list.head.next.next = new Node(3);
list.head.next.next.next = new Node(4);
list.head.next.next.next.next = new Node(5);
console.log("Linked List before deleting alternate nodes: ");
list.printList();
list.deleteAlternate();
console.log("Linked List after deleting alternate nodes: ");
list.printList();

Explanation

  • We first create a Node class that represents each node in the linked list, which contains a data field and a next field that points to the next node in the list.

  • Then, we create a LinkedList class that contains the head node of the linked list and a printList method to print the linked list.

  • The deleteAlternate method of the LinkedList class is used to delete alternate nodes in the linked list. The method iterates through the linked list and updates the next pointer of each node to point to the next-next node in the linked list, effectively deleting the alternate nodes.

  • Finally, we create a linked list and print it before and after deleting alternate nodes.

Updated on: 13-Mar-2023

148 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements