题目
- 二叉树的最大深度
题目描述
给定一个二叉树,找出其最大深度。
二叉树的深度
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明
叶子节点是指没有子节点的节点。
思路
1.如果根节点为nil,则深度为0
2.否则计算左右子数的深度
3.找出左右子数深度最大的,然后+1
4.递归执行2/3两个步骤即可计算树的最大深度
示例
data := &TreeNode{
Val:3,
Left:&TreeNode{
Val:9,
},
Right:&TreeNode{
Val:20,
Left:&TreeNode{Val:15},
Right:&TreeNode{Val:7},
},
}
data := &TreeNode{
Val:1,
Left:&TreeNode{
Val:2,
Left:&TreeNode{
Val:3,
Left:&TreeNode{Val:4},
Right:&TreeNode{Val:4},
},
Right:&TreeNode{Val:3},
},
Right:&TreeNode{
Val:2,
},
}
代码
package leetcode
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
// maxDepth
// 二叉树深度
func maxDepth(root *TreeNode) int {
if root == nil {
return 0
}
return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
}
func max(left, right int) int {
if left > right {
return left
}
return right
}
参考
来源:力扣(LeetCode)
链接:leetcode-cn.com/problems/ba…
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。