📌  相关文章
📜  Javascript 程序在倒数第 N 个节点之后插入一个节点

📅  最后修改于: 2022-05-13 01:57:45.226000             🧑  作者: Mango

Javascript 程序在倒数第 N 个节点之后插入一个节点

在给定的单链表中,在倒数第 n 个节点之后插入一个节点x 。保证列表包含倒数第 n 个节点。还有 1 <= n。

例子:

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

方法1(使用列表的长度):
求链表的长度,即链表中的节点数。让它成为len 。现在从第一个节点遍历列表到第(len-n+1) 个节点,并在该节点之后插入新节点。此方法需要对列表进行两次遍历。

Javascript


Javascript


输出:

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

时间复杂度: O(n),其中n是列表中的节点数。

方法二(单次遍历):
该方法使用两个指针,一个是slow_ptr ,另一个是fast_ptr 。首先将fast_ptr 从头向上移动到第n 个节点。使slow_ptr指向列表的第一个节点。现在,同时移动两个指针,直到fast_ptr指向最后一个节点。此时, slow_ptr将指向从末尾算起的第 n 个节点。在该节点之后插入新节点。此方法需要单次遍历列表。

Javascript


输出:

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

时间复杂度: O(n),其中n是列表中的节点数。

有关详细信息,请参阅关于在倒数第 n 个节点之后插入节点的完整文章!