# Javascript Program For Inserting A Node After The N-th Node From The End

• Last Updated : 11 Jan, 2022

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->18```

Method 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

 ``

Output:

```Original Linked List: 1 3 4 5
Linked List After Insertion: 1 2 3 4 5```

Time Complexity: O(n), where n is the number of nodes in the list.

Method 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

 ``

Output:

```Original Linked List: 1 3 4 5
Linked List After Insertion: 1 2 3 4 5```

Time Complexity: O(n), where n is the number of nodes in the list.

Please refer complete article on Insert a node after the n-th node from the end for more details!

My Personal Notes arrow_drop_up