4. Python程序,用于创建具有n个节点的双向链表并以相反的顺序显示。

2025年3月17日 | 阅读 3 分钟

在此程序中,我们将创建一个双向链表,然后通过反转列表的方向来反转列表并打印出节点。

python program to create a doubly linked list of n nodes and display it in reverse order

通过交换每个节点的 previous 指针和 next 指针来遍历链表。然后,交换 head 和 tail 节点的位置,即原始列表的 head 将成为新列表的 tail,原始列表的 tail 将成为新列表的 head。因此,反转后的列表将是

python program to create a doubly linked list of n nodes and display it in reverse order

算法

  1. 定义一个 Node 类,它表示列表中的一个节点。它将有三个属性:数据、previous 指向前一个节点,以及 next 指向下一个节点。
  2. 定义另一个用于创建双向链表的类,它有两个节点:头节点和尾节点。最初,头节点和尾节点将指向 null。
  3. addNode() 将向列表中添加节点。
  • 它首先检查头节点是否为 null,然后将节点作为头节点插入。
  • 头节点和尾节点都将指向新添加的节点。
  • 头节点的前一个指针将指向 null,尾节点的下一个指针将指向 null。
  • 如果头节点不为 null,则新节点将插入到列表的末尾,使得新节点的前一个指针将指向尾节点。
  • 新节点将成为新的尾节点。尾节点的下一个指针将指向 null。

a. reverse() 将反转给定的双向链表。

  • 定义一个 current 节点,它最初将指向 head。
  • 通过在每次迭代中使 current 指向 current.next 来遍历链表,直到 current 指向 null。
  • 在每次迭代中,交换每个节点的 previous 和 next 指针,以反转列表的方向。
  • 最后,交换 head 和 tail 的位置。

a. display() 将显示列表中存在的所有节点。

  • 定义一个新节点“current”,它将指向头节点。
  • 打印 current.data 直到 current 指向 null。
  • 在每次迭代中,current 将指向列表中的下一个节点。

程序

输出

Original List: 
1 2 3 4 5 
Reversed List: 
5 4 3 2 1 
下一个主题Python 程序