📌  相关文章
📜  用于交替拆分给定单链表的 Javascript 程序 - 集 1

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

用于交替拆分给定单链表的 Javascript 程序 - 集 1

编写一个函数AlternatingSplit(),它接受一个列表并将其节点划分为两个较小的列表“a”和“b”。子列表应由原始列表中的交替元素组成。因此,如果原始列表是 0->1->0->1->0->1,那么一个子列表应该是 0->0->0,另一个应该是 1->1->1。

方法(使用虚拟节点):
这是一种以与源列表相同的顺序构建子列表的方法。该代码在构建“a”和“b”列表时使用临时虚拟标头节点。每个子列表都有一个指向其当前最后一个节点的“尾”指针——这样新节点可以很容易地附加到每个列表的末尾。虚拟节点给尾指针一些最初指向的东西。在这种情况下,虚拟节点是有效的,因为它们是临时的并且在堆栈中分配。或者,可以使用本地“引用指针”(始终指向列表中的最后一个指针而不是最后一个节点)来避免虚拟节点。

Javascript


时间复杂度: O(n),其中 n 是给定链表中的节点数。
资料来源:http://cslibrary.stanford.edu/105/LinkedListProblems.pdf
请参阅有关给定单链表的交替拆分的完整文章 |设置 1 了解更多详情!