Javascript Program For Inserting A Node After The N-th Node From The End Last Updated : 03 Sep, 2024 Comments Improve Suggest changes Like Article Like Report Insert a node x after the nth node from the end in the given singly linked list. It is guaranteed that the list contains the nth node from the end. Also 1 <= n.Examples: Input : list: 1->3->4->5 n = 4, x = 2 Output : 1->2->3->4->5 4th node from the end is 1 and insertion has been done after this node. Input : list: 10->8->3->12->5->18 n = 2, x = 11 Output : 10->8->3->12->5->11->18Method 1 (Using length of the list):Find the length of the linked list, i.e, the number of nodes in the list. Let it be len. Now traverse the list from the 1st node upto the (len-n+1)th node from the beginning and insert the new node after this node. This method requires two traversals of the list. JavaScript // JavaScript implementation to // insert a node after // the n-th node from the end // structure of a node class Node { constructor() { this.data = 0; this.next = null; } } // function to get a new node function getNode(data) { // allocate memory for the node let newNode = new Node(); // put in the data newNode.data = data; newNode.next = null; return newNode; } // function to insert a node after the // nth node from the end function insertAfterNthNode(head, n, x) { // if list is empty if (head == null) return; // get a new node for the value 'x' let newNode = getNode(x); let ptr = head; let len = 0, i; // find length of the list, i.e, the // number of nodes in the list while (ptr != null) { len++; ptr = ptr.next; } // traverse up to the nth node from the end ptr = head; for (i = 1; i <= (len - n); i++) ptr = ptr.next; // insert the 'newNode' by making the // necessary adjustment in the links newNode.next = ptr.next; ptr.next = newNode; } // function to print the list function printList(head) { while (head != null) { console.log(head.data + " "); head = head.next; } } // Driver code // Creating list 1->3->4->5 let head = getNode(1); head.next = getNode(3); head.next.next = getNode(4); head.next.next.next = getNode(5); let n = 4, x = 2; console.log("Original Linked List: "); printList(head); insertAfterNthNode(head, n, x); console.log("Linked List After Insertion: "); printList(head); // This code contributed by gauravrajput1 OutputOriginal Linked List: 1 3 4 5 Linked List After Insertion: 1 2 3 4 5 Complexity Analysis:Time Complexity: O(n), where n is the number of nodes in the list.Auxiliary space: O(1) because using constant variablesMethod 2 (Single traversal):This method uses two pointers, one is slow_ptr and the other is fast_ptr. First move the fast_ptr up to the nth node from the beginning. Make the slow_ptr point to the 1st node of the list. Now, simultaneously move both the pointers until fast_ptr points to the last node. At this point the slow_ptr will be pointing to the nth node from the end. Insert the new node after this node. This method requires single traversal of the list. JavaScript // JavaScript implementation to // insert a node after the // nth node from the end // structure of a node class Node { constructor() { this.data = 0; this.next = null; } } // function to get a new node function getNode(data) { // allocate memory for the node let newNode = new Node(); // put in the data newNode.data = data; newNode.next = null; return newNode; } // function to insert a node after // the nth node from the end function insertAfterNthNode(head, n, x) { // if list is empty if (head == null) return; // get a new node for the value 'x' let newNode = getNode(x); // Initializing the slow // and fast pointers let slow_ptr = head; let fast_ptr = head; // move 'fast_ptr' to point to the // nth node from the beginning for (let i = 1; i <= n - 1; i++) fast_ptr = fast_ptr.next; // iterate until 'fast_ptr' points // to the last node while (fast_ptr.next != null) { // move both the pointers to the // respective next nodes slow_ptr = slow_ptr.next; fast_ptr = fast_ptr.next; } // insert the 'newNode' by making the // necessary adjustment in the links newNode.next = slow_ptr.next; slow_ptr.next = newNode; } // function to print the list function printList(head) { while (head != null) { console.log(head.data); head = head.next; } } // Driver code // Creating list 1->3->4->5 let head = getNode(1); head.next = getNode(3); head.next.next = getNode(4); head.next.next.next = getNode(5); let n = 4, x = 2; console.log("Original Linked List: "); printList(head); insertAfterNthNode(head, n, x); console.log("Linked List After Insertion:"); printList(head); OutputOriginal Linked List: 1 3 4 5 Linked List After Insertion: 1 2 3 4 5 Complexity Analysis:Time Complexity: O(n), where n is the number of nodes in the list.Space Complexity: O(1) using constant space Please refer complete article on Insert a node after the n-th node from the end for more details! Comment More infoAdvertise with us kartik Follow Improve Article Tags : Linked List JavaScript Web Technologies DSA Practice Tags : Linked List Similar Reads JavaScript Linked List Programs JavaScript Linked List Programs contain a list of articles based on programming. Linked List is a linear data structure that stores data in linearly connected nodes. Linked lists store elements sequentially, but doesnât store the elements contiguously like an array. S. NoArticles1JavaScript Program 5 min read Implementation of LinkedList in Javascript In this article, we will be implementing the LinkedList data structure in Javascript.A linked list is a linear data structure where elements are stored in nodes, each containing a value and a reference (or pointer) to the next node. It allows for efficient insertion and deletion operations.Each node 5 min read Javascript Program For Searching An Element In A Linked List Write a function that searches a given key 'x' in a given singly linked list. The function should return true if x is present in linked list and false otherwise.bool search(Node *head, int x) For example, if the key to be searched is 15 and linked list is 14->21->11->30->10, then functio 3 min read Javascript Program For Inserting A Node In A Linked List We have introduced Linked Lists in the previous post. We also created a simple linked list with 3 nodes and discussed linked list traversal.All programs discussed in this post consider the following representations of the linked list. JavaScript// Linked List Class // Head of list let head; // Node 7 min read Javascript Program For Inserting Node In The Middle Of The Linked List Given a linked list containing n nodes. The problem is to insert a new node with data x at the middle of the list. If n is even, then insert the new node after the (n/2)th node, else insert the new node after the (n+1)/2th node.Examples: Input : list: 1->2->4->5 x = 3Output : 1->2->3- 4 min read Javascript Program For Writing A Function To Delete A Linked List A linked list is a linear data structure, in which the elements are not stored at contiguous memory locations. The elements in a linked list are linked using pointers. This article focuses on writing a function to delete a linked list.Implementation: JavaScript// Javascript program to delete // a li 1 min read Javascript Program For Deleting A Linked List Node At A Given Position Given a singly linked list and a position, delete a linked list node at the given position.Example: Input: position = 1, Linked List = 8->2->3->1->7Output: Linked List = 8->3->1->7Input: position = 0, Linked List = 8->2->3->1->7Output: Linked List = 2->3->1- 3 min read Javascript Program For Finding Length Of A Linked List Write a function to count the number of nodes in a given singly linked list.For example, the function should return 5 for linked list 1->3->1->2->1.Iterative Solution: 1) Initialize count as 0 2) Initialize a node pointer, current = head.3) Do following while current is not NULL a) curre 3 min read Javascript Program For Rotating A Linked List Given a singly linked list, rotate the linked list counter-clockwise by k nodes. Where k is a given positive integer. For example, if the given linked list is 10->20->30->40->50->60 and k is 4, the list should be modified to 50->60->10->20->30->40. Assume that k is smal 5 min read Javascript Program For Making Middle Node Head In A Linked List Given a singly linked list, find middle of the linked list and set middle node of the linked list at beginning of the linked list. Examples:Input: 1 2 3 4 5 Output: 3 1 2 4 5Input: 1 2 3 4 5 6Output: 4 1 2 3 5 6 The idea is to first find middle of a linked list using two pointers, first one moves on 3 min read Like