HackerRank Insert a Node at a Specific Position in a Linked List | JS Solution
Problem
HackerRank detailed problem description can be found here.
We need to create a function insertNodeAtPosition(head, data, position) {}
. This function should:
- Create a new node using provided
data
- Insert that newly created node at the provided
position
inside a Singly Linked List - Lastly, return the
head
node
Inputs & Outputs
/*
param {Node} head
param {number} data
param {number} position
return {Node}
*/
Test Case
I am using data
of a string data type in the example below in order to make this algorithm just a bit more visual, though in the actual coded solution the data
of a number data type will be used.
Imagine this is our initial linked list with 3 nodes in it. We are asked to create a new node with data bacon
and insert it in the position: 2
This is how our linked list would look like after we are done with our function:
Data Structures
Singly linked list, number
Code
function insertNodeAtPosition(head, data, position) {
let count = 0;
let prev = null;
let current = head;
let newNode = new SinglyLinkedListNode(data);
while (count < position && current) {
prev = current;
current = current.next;
count++;
}
if (prev) {
prev.next = newNode;
newNode.next = current;
}
return head;
}
* The code above doesn't consider the cases where we are given an empty linked list or position: 0.
Sources
Insert a node at a specific position in a linked list algorithm by HackerRank