求二叉树叶子节点的深度和
时间: 2025-02-13 12:08:59 浏览: 40
### 计算二叉树所有叶子节点的深度总和
对于计算二叉树中所有叶子节点的深度之和,可以采用递归的方法来解决这个问题。该方法的核心在于遍历整个二叉树,在遇到叶子节点时累加其深度值。
#### 方法描述
定义一个辅助函数 `sumLeafDepths` 接受三个参数:当前处理的节点、以及当前节点所在的深度。初始调用此函数时传入根节点及其深度0。每当访问到一个新的节点时,增加深度计数器并传递给子节点调用。当到达叶子节点(即无左右孩子的节点),则将此时的深度加入全局变量或返回值中[^2]。
下面是具体的Java实现:
```java
public class BinaryTree {
static class TreeNode {
int val;
TreeNode left, right;
public TreeNode(int item) {
this.val = item;
left = right = null;
}
}
// 主要逻辑入口
public int sumOfLeafDepths(TreeNode root) {
return sumLeafDepths(root, 0);
}
private int sumLeafDepths(TreeNode node, int depth) {
if (node == null) {
return 0;
}
// 如果是叶子节点,则加上当前深度
if (node.left == null && node.right == null) {
return depth;
}
// 否则继续向下查找,并累计左右分支的结果
return sumLeafDepths(node.left, depth + 1) +
sumLeafDepths(node.right, depth + 1);
}
}
```
上述代码实现了对一棵二叉树内所有叶子节点深度求和的功能。每次深入一层都会使depth加一,最终在叶子位置累积起来形成总的深度和[^4]。
阅读全文
相关推荐



















