w3resource

JavaScript Exercises: Insert a new node at any position of a Singly Linked List

JavaScript Singly Linked List: Exercise-4 with Solution

Write a JavaScript program to insert a node at any position in a Singly Linked List.

Sample Solution:

JavaScript Code:

class Node {
    constructor(data) {
        this.data = data
        this.next = null                
    }
}

class SinglyLinkedList {
    constructor(Head = null) {
        this.Head = Head
    }
add(newNode){
    let node = this.Head;
    if(node==null){
        this.Head = newNode;
        return;
    }
    while (node.next) {
        node = node.next;
    }
    node.next = newNode;
}
 
insertAt(index, newNode){
    let node = this.Head;
    if(index==0) {
        newNode.next = node;
        this.head = newNode;
        return;
    }
    while(--index){
        if(node.next!==null)
            node = node.next;
        else
            throw Error("Index Out of Bound");
    }
    let tempVal = node.next;
    node.next = newNode;
    newNode.next = tempVal;
}

 displayList(){
    let node = this.Head;
    var str = ""
    while (node) {
        str += node.data + "->";
        node = node.next;
    }
    str += "NULL"
    console.log(str);  
  }
}
let numList = new SinglyLinkedList();
numList.add(new Node(12));
numList.add(new Node(13));
numList.add(new Node(14));
numList.add(new Node(15));
numList.displayList();
console.log("Insert 4 at index position 1:")
numList.insertAt(1, new Node(4));
numList.displayList();
console.log("Insert 5 at index position 3:")
numList.insertAt(3, new Node(5));
numList.displayList();
console.log("Insert 6 at index position 6:")
numList.insertAt(6, new Node(6));
numList.displayList();


Sample Output:

12->13->14->15->NULL
Insert 4 at index position 1:
12->4->13->14->15->NULL
Insert 5 at index position 3:
12->4->13->5->14->15->NULL
Insert 6 at index position 6:
12->4->13->5->14->15->6->NULL

Flowchart:

Flowchart: JavaScript Exercises: Insert a new node at any position of a Singly Linked List.

Live Demo:

See the Pen javascript-singly-linked-list-exercise-4 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Singly Linked List Previous: Count number of nodes in a Singly Linked List.
Singly Linked List Next: Insert a new node at the beginning of a Singly Linked List.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

JavaScript: Tips of the Day

Reduce method

[1, 2, 3, 4].reduce((x, y) => console.log(x, y));

The first argument that the reduce method receives is the accumulator, x in this case. The second argument is the current value, y. With the reduce method, we execute a callback function on every element in the array, which could ultimately result in one single value.
In this example, we are not returning any values, we are simply logging the values of the accumulator and the current value.
The value of the accumulator is equal to the previously returned value of the callback function. If you don't pass the optional initialValue argument to the reduce method, the accumulator is equal to the first element on the first call.
On the first call, the accumulator (x) is 1, and the current value (y) is 2. We don't return from the callback function, we log the accumulator and current value: 1 and 2 get logged.
If you don't return a value from a function, it returns undefined. On the next call, the accumulator is undefined, and the current value is 3. undefined and 3 get logged.
On the fourth call, we again don't return from the callback function. The accumulator is again undefined, and the current value is 4. undefined and 4 get logged.

Ref: https://bit.ly/323Y0P6

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook