📜  用于反转双向链表的 Javascript 程序

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

用于反转双向链表的 Javascript 程序

给定一个双向链表,任务是反转给定的双向链表。

例如,请参见下图。

(a) Original Doubly Linked List  

(b) Reversed Doubly Linked List  

这是一个反转双向链表的简单方法。我们需要做的就是交换所有节点的 prev 和 next 指针,更改 head(或 start)的 prev 并最终更改 head 指针。

Javascript


Javascript


输出:

Original linked list 
10 8 4 2 
The reversed Linked List is 
2 4 8 10

方法二:

同样的问题也可以通过使用 Stacks 来完成。

脚步:

  1. 继续将节点的数据推入堆栈。 -> O(n)
  2. 不断弹出元素并更新双向链表

Javascript


输出:

Original linked list 
10 8 4 2 
The reversed Linked List is 
2 4 8 10

时间复杂度: O(N)
辅助空间: O(N)

在这个方法中,我们遍历链表一次并将元素添加到堆栈中,然后再次遍历整体以更新所有元素。整体需要2n时间,也就是O(n)的时间复杂度。

有关详细信息,请参阅有关反向双向链表的完整文章!