10. Python 程序:在双向链表的开头插入一个新节点。

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

在这个程序中,我们将创建一个双向链表,并在列表的开头插入每个新节点。如果列表为空,则 head 和 tail 将指向新添加的节点。如果列表不为空,则将新节点插入到列表的开头,使 head 的前一个节点指向新节点。将新节点作为列表的 head,并且它的前一个节点指向 null。

Python program to insert a new node at the beginning of the Doubly Linked list

考虑上面的例子。 最初,1 是列表的 head。现在 new 将插入到节点 1 之前,使节点 1 的前一个节点指向 new。将 new 作为列表的 head,并且它的前一个节点指向 null。

算法

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

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

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

程序

输出

Adding a node to the start of the list: 
1 
Adding a node to the start of the list: 
2 1 
Adding a node to the start of the list: 
3 2 1 
Adding a node to the start of the list: 
4 3 2 1 
Adding a node to the start of the list: 
5 4 3 2 1
下一个主题Python 程序