LeetCode 剑指 Offer 55 - I. 二叉树的深度

题目描述

剑指 Offer 55 - I. 二叉树的深度

image-20241107211939632

思路分析

解法一:递归深度(推荐)

核心思路

  • 深度等于左子树与右子树深度的最大值加一。
  • 递归遍历整棵树即可。
  • 空节点深度为 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 叉树的最大深度 简单 递归
本文作者:
本文链接: https://hgnulb.github.io/blog/2021/15874716
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!