Leetcode 104 二叉树的最大深度(解释需要改一下,原理尚未明确)

30 阅读1分钟

题目

image.png

26年5月13日(二刷自解Go bfs)

func maxDepth(root *TreeNode) int {
    if root==nil {
        return 0
    }
    size:=1
    q:=[]*TreeNode{root}
    for len(q)>0{
        p:=[]*TreeNode{}
        for j:=0 ;j<len(q) ;j++ {
            node:=q[j]
            if node.Left!=nil{
                p=append(p,node.Left)
            }
            if node.Right!=nil{
                p=append(p,node.Right)
            }
        }
        if len(p)>0{
          size++  
        }
        q=p
    }   
    return size
}

26年3月25日(看解自解C语言 递归)

image.png

这道题因为二叉树的深度,其实可以看成每一层的高度1相加,于是想到可以用递归的思路,

核心逻辑树的深度可以看做左子树和右子树中较大深度加1,而子树又有一样的逻辑

于是递归计算左子树的右子树的深度