问:判断两棵树是否相同的程序。

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

说明

在此程序中,我们需要检查两棵树是否相同。要使两棵树相同,它们必须满足两个条件:

  1. 两棵树的结构必须相同。
  2. 一棵树中的节点也必须存在于另一棵树中。
Program to determine whether two trees are identical

上图包含三棵树,分别是 A、B 和 C。树 A 和树 B 是相同的,因为它们的结构相同且所有节点的值都相同。然而,树 A 和树 C 的结构相同,但并不相同,因为两棵树中的节点是不同的。

算法

  1. 定义 Node 类,它有三个属性:data、leftright。其中,left 表示节点的左子节点,right 表示节点的右子节点。
  2. 创建节点时,将数据传递给节点的 data 属性,并将 left 和 right 都设置为 null
  3. 定义另一个类,该类有一个 root 属性。
    1. Root 表示树的根节点,并将其初始化为 null。
  4. areIdenticalTrees() 函数将检查两棵树是否相同。
    1. 如果两棵树的根节点都为空,则它们相同。
    2. 如果只有一棵树的根节点为空,则两棵树不相同,返回 false。
    3. 如果两棵树的根节点都不为空,则检查两个节点的数值是否相等,然后递归地检查一棵树的左子树和右子树是否与另一棵树相同。

解决方案

Python

输出

Both the binary trees are identical

C

输出

Both the binary trees are identical

JAVA

输出

Both the binary trees are identical

C#

输出

Both the binary trees are identical

PHP

输出

Both the binary trees are identical
 
下一个主题程序列表