计算二叉树奇数层和偶数层节点和之差的 Java 程序

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

在此程序中,我们需要计算奇数层节点之和与偶数层节点之和之间的差值。假设一棵树有 5 层,那么


Java Program to calculate the Difference between the Sum of the Odd Level and the Even Level Nodes of a Binary Tree

在上图中,奇数层用蓝色虚线表示,偶数层用绿色表示。

算法

  • 定义 Node 类,该类具有三个属性:data、left 和 right。其中,left 表示节点的左子节点,right 表示节点的右子节点。
  • 创建节点时,将节点的 data 部分分配给适当的值,并将其 left 和 right 子节点设置为 NULL。
  • 定义另一个类,该类有一个 root 属性。
    • Root 表示树的根节点,初始值为 null。

a. difference() 方法将计算奇数层节点之和与偶数层节点之和之间的差值。

  • 使用队列逐层遍历二叉树。
  • 使用 currentLevel 变量跟踪当前层。
  • 如果 currentLevel 可以被 2 整除,则将 currentLevel 中所有节点的值加到 evenLevel 变量中。否则,将所有节点的值加到 oddLevel 变量中。
  • 通过从 oddLevel 中减去 evenLevel 中的值来计算差值。

程序

输出

Difference between sum of odd level and even level nodes: 11
下一个主题Java 程序