二叉树最大深度
给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2: 输入:root = [1,null,2] 输出:2
提示: 树中节点的数量在 [0, 10⁴] 区间内。 -100 <= Node.val <= 100
解题思路
- 使用深度优先搜索(DFS)遍历二叉树。
- 在每个结点,计算其左右子树的最大深度,并返回两者中较大的值加上 1
func maxDepth(root *TreeNode) int {
if root == nil {
return 0
}
leftDepth := maxDepth(root.Left)
rightDepth := maxDepth(root.Right)
return max(rightDepth, leftDepth) + 1
}
func max(a, b int) int {
if a > b {
return a
}
return b
}