记录
2025.4.25
题目:
思路:
深度优先搜索。
解题步骤:
1.先判断递归终止条件:当当前节点为 null 时,说明已到达叶子节点的子节点,返回深度 0。
2.递归计算左右子树深度:对当前节点的左子树和右子树分别递归调用 maxDepth 方法,得到左子树深度 leftHeight 和右子树深度 rightHeight。
3.合并结果:当前子树的最大深度为左右子树深度的较大值,再加上当前节点自身的深度 1。
公式:maxDepth = max(leftHeight, rightHeight) + 1
4.返回最终结果:递归最终返回根节点的深度,即为整棵树的最大深度。
代码:
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
} else {
int leftHeight = maxDepth(root.left);
int rightHeight = maxDepth(root.right);
return Math.max(leftHeight, rightHeight) + 1;
}
}
}
复杂度:
O(N)
O(h)