📌  相关文章
📜  用于在链表中间插入节点的 Javascript 程序

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

用于在链表中间插入节点的 Javascript 程序

给定一个包含n 个节点的链表。问题是在列表中间插入一个带有数据x的新节点。如果n是偶数,则在第(n/2)个节点之后插入新节点,否则在第(n+1)/2个节点之后插入新节点。

例子:

Input : list: 1->2->4->5
        x = 3
Output : 1->2->3->4->5

Input : list: 5->10->4->32->16
        x = 41
Output : 5->10->4->41->32->16

方法一(使用链表的长度):
使用一次遍历查找链接的节点数或长度。让它成为len 。计算c = (len/2),如果len是偶数,否则c = (len+1)/2,如果len是奇数。再次遍历前c个节点,在第c个节点之后插入新节点。

Javascript


Javascript


输出:

Linked list before insertion: 1 2 4 5
Linked list after insertion: 1 2 3 4 5

时间复杂度: O(n)

方法2(使用两个指针):
基于使用两个指针的龟兔算法,一个称为指针,另一个称为指针。该算法有助于找到链表的中间节点。在这篇文章的正面和黑色分裂过程中进行了解释。现在,您可以在通过上述过程获得的中间节点之后插入新节点。这种方法只需要一次遍历列表。

Javascript


输出:

Linked list before insertion: 1 2 4 5
Linked list after insertion: 1 2 3 4 5

时间复杂度: O(n)

详情请参考完整文章将节点插入链表中间!