判断所有叶子是否在同一层的 Java 程序

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

在此程序中,我们需要检查给定的二叉树的所有叶子节点是否在同一层。

如果一个节点没有子节点,则该节点被认为是叶子节点。在下图的示例中,节点 4、5 和 6 是叶子节点,因为它们没有任何子节点。节点 4、5 和 6 位于同一层,即第 2 层。

Java program to determine whether all leaves are at same level

算法

  • 定义 Node 类,该类包含三个属性:data、left 和 right。这里,left 表示节点的左子节点,right 表示节点的右子节点。
  • 创建节点时,数据将传递到节点的 data 属性,left 和 right 都将设置为 null。
  • 定义另一个类,它有两个属性:root(根节点)和 level(层级)。
    • Root 表示树的根节点,并将其初始化为 null。
    • level 属性将用于存储遇到的第一个叶子节点的层级。

a. isSameLevel() 方法将检查给定的二叉树的所有叶子节点是否在同一层。

  • 它检查 root 是否为 null,这意味着树是空的。
  • 如果树不为空,则遍历树,查找叶子节点(即左右子节点都为 null 的节点)。
  • CurrentLevel 将跟踪正在遍历的当前层级。
  • 当遇到第一个叶子节点时,将 currentLevel 的值存储在变量 level 中。
  • 递归地遍历所有层级,检查后续的叶子节点。如果所有叶子节点的 currentLevel 都等于存储在 level 中的值,则所有叶子节点都在同一层。

程序

输出

All leaves are at same level
下一个主题Java 程序