题目要求:
给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:3
示例 2:
输入:root = [1,null,2]
输出:2
提示:
树中节点的数量在 [0, 104] 区间内。
-100 <= Node.val <= 100
解题思路
使用深度优先搜索,就是从左往右依次遍历每个分支,判断所有分支的最大深度
代码:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func maxDepth(root *TreeNode) int {
if root == nil {
return 0
}
l := 0
r := 0
if root.Left != nil {
l += maxDepth(root.Left)
}
if root.Right != nil {
r += maxDepth(root.Right)
}
if l > r {
return l + 1
} else {
return r + 1
}
}