leetcode-104. 二叉树的最大深度

72 阅读1分钟

题目要求:

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:
实例1 输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:
输入:root = [1,null,2]
输出:2

提示
树中节点的数量在 [0, 104] 区间内。
-100 <= Node.val <= 100

链接leetcode.cn/problems/ma…

解题思路

使用深度优先搜索,就是从左往右依次遍历每个分支,判断所有分支的最大深度

代码

/**
 * 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
	}
}