用任意指针指向链表中下一个更高值节点的 Javascript 程序
给定单链表,每个节点都有一个当前指向 NULL 的附加“任意”指针。需要使“任意”指针指向下一个更高值的节点。
我们强烈建议您最小化您的浏览器并先自己尝试
一个简单的解决方案是逐个遍历所有节点,对于每个节点,找到当前节点的下一个较大值的节点,并更改下一个指针。该解决方案的时间复杂度为 O(n 2 )。
一个有效的解决方案在 O(nLogn) 时间内工作。这个想法是对链表使用合并排序。
1)遍历输入列表并将下一个指针复制到每个节点的仲裁指针。
2) 对仲裁指针形成的链表进行归并排序。
下面是上述思想的实现。所有的合并排序函数都取自这里。此处修改了所采用的函数,以便它们在仲裁指针而不是下一个指针上工作。
Javascript
输出:
Result Linked List is:
Traversal using Next Pointer
5, 10, 2, 3,
Traversal using Arbit Pointer
2, 3, 5, 10,
有关更多详细信息,请参阅关于使用任意指针指向链表中的下一个更高值节点的完整文章!