1. Python 程序将给定的二叉树转换为双向链表。

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

在此程序中,我们需要将给定的二叉树转换为相应的双向链表。

二叉树是一种树状数据结构,其中每个节点最多有两个子节点。

这可以通过以中序方式遍历树来实现,即 左子节点 -> 根节点 -> 右节点。 遍历左子树并通过将节点添加到列表末尾将其转换为双向链表。 这样,最左边的节点将成为列表的头部。 然后,将右子树转换为双向链表。

Python program to convert a given binary tree to doubly linked list Python program to convert a given binary tree to doubly linked list

算法

  1. 定义一个 Node 类来表示二叉树中的一个节点。它将具有三个属性:data、left 和 right,其中 left 和 right 分别表示节点的两个子节点。
  2. Root 将表示二叉树的根。Head 和 tail 节点分别表示双向链表的头和尾。
  3. BinaryTreeToDLL() 将给定的二叉树转换为相应的双向链表。
  • 通过先转换左子树来执行二叉树的中序遍历。
  • 如果列表为空,则head和tail都将指向一个节点。
  • 如果列表不为空,则节点将被插入到列表的末尾。在这里,指针 left 和 right 将分别表示双向链表的上一个和下一个指针。
  • 现在,递归调用 BinaryTreeToDLL() 来转换右子树。

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

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

程序

输出

Nodes of generated doubly linked list: 
4 2 5 1 6 3 7 
下一个主题Python 程序