Q. 判断所有叶子节点是否在同一层级的程序。

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

说明

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

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

Program to determine whether all leaves are at same level

算法

  1. 定义 Node 类,它有三个属性:data、leftright。其中,left 表示节点的左子节点,right 表示节点的右子节点。
  2. 创建节点时,将数据传递给节点的 data 属性,并将 left 和 right 都设置为 null
  3. 定义另一个类,该类具有两个属性:root 和 level。
    1. Root 表示树的根节点,并将其初始化为 null。
    2. level 将用于存储遇到的第一个叶子节点的层级。
  4. isSameLevel() 将检查给定二叉树的所有叶子节点是否在同一层级。
    1. 它检查根是否为空,这意味着树是空的。
    2. 如果树非空,则遍历树并检查叶子节点,其左右子节点都为 null。
    3. CurrentLevel 将跟踪当前遍历的层级。
    4. 当遇到第一个叶子节点时,将 currentLevel 的值存储在变量 level 中。
    5. 递归地遍历所有层级,检查后续的叶子节点。如果所有叶子节点的 currentLevel 都等于存储在 level 中的值,则所有叶子节点都在同一层级。

解决方案

Python

输出

All leaves are at same level

C

输出

All leaves are at same level

JAVA

输出

All leaves are at same level

C#

输出

All leaves are at same level

PHP

输出

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