LeetCode 剑指 Offer 55 - I. 二叉树的深度
题目描述

思路分析
解法一:递归深度(推荐)
核心思路:
- 深度等于左子树与右子树深度的最大值加一。
- 递归遍历整棵树即可。
- 空节点深度为 0。
复杂度分析:
- 时间复杂度:O(n),其中 n 表示节点数。
- 空间复杂度:O(h),其中 h 表示树高(递归栈)。
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return Math.max(left, right) + 1;
}
}
func maxDepth(root *TreeNode) int {
if root == nil {
return 0
}
left := maxDepth(root.Left)
right := maxDepth(root.Right)
if left > right {
return left + 1
}
return right + 1
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 104. 二叉树的最大深度 | 简单 | 递归 |
| 111. 二叉树的最小深度 | 简单 | 递归 |
| 110. 平衡二叉树 | 简单 | 后序遍历 |
| 543. 二叉树的直径 | 简单 | 后序遍历 |
| 559. N 叉树的最大深度 | 简单 | 递归 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!