Java 判断两棵树是否相同的程序

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

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

  • 两棵树的结构必须相同。
  • 一棵树中存在的节点必须存在于另一棵树中。
Java program to determine whether two trees are identical

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

算法

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

程序

输出

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