题目链接: 剑指 Offer 55 - I. 二叉树的深度
题目描述:
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
解法思路:
代码:
层序遍历的方式求树的深度
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func maxDepth(root *TreeNode) int {
var res int
if root == nil {
return res
}
var q []*TreeNode
q = append(q,root)
for len(q) > 0{
n := len(q)
res++
for n > 0{
node := q[0]
if node.Left != nil {
q = append(q,node.Left)
}
if node.Right != nil {
q = append(q,node.Right)
}
q = q[1:]
n--
}
}
return res
}
递归,左右子树的深度的最大值 + 1
func maxDepth(root *TreeNode) int {
if root == nil{
return 0
}
return max(maxDepth(root.Left),maxDepth(root.Right))+1
}
func max(a,b int)int{
if a > b{
return a
}
return b
}