java求二叉树最大深度
时间: 2024-06-08 10:04:18 浏览: 9
在Java中,求解二叉树的最大深度(即树的高度)可以通过递归的方式来实现。树的最大深度是从根节点到最远叶子节点的最长路径。这里有一个经典的递归算法:
```java
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0; // 如果根节点为空,深度为0
} else {
// 计算左子树和右子树的最大深度,然后取较大值加1(加1是因为当前节点也算一层)
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
// 返回两者中的较大值作为当前节点的最大深度
return Math.max(leftDepth, rightDepth) + 1;
}
}
}
```
在这个代码中,`maxDepth` 方法首先检查根节点是否为空,如果为空则返回0。否则,它会递归地计算左子树和右子树的最大深度,并将两者中的较大值加1作为结果。这样,每一次递归调用都会把当前节点的深度考虑进去,直到遍历完整个树。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)