剑指 Offer 55 - I. 二叉树的深度

发布时间 2023-09-09 15:57:38作者: 小星code

题目链接: 剑指 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
}