LeetCode 104. 二叉树的最大深度

题目链接:LeetCode 104. 二叉树的最大深度

题意:

给定一个二叉树,找出其最大深度。

解题思路:

1. 递归法:

对于递归的解法,采用先序或者后序都是可以的。

后序递归代码如下:

func maxDepth(root *TreeNode) int {
    var res int
    if root == nil {
        return 0
    }
    Left:=maxDepth(root.Left)
    Right:=maxDepth(root.Right)
    res++
    res += max(Left,Right) 
    return res
}
func max(a, b int)int{
    if a > b{
        return a
    }
    return b
}

2.迭代法:

对于迭代的写法,最合适的就是层次遍历,因为在遍历过程中,每遍历一层,二叉树的深度加 1

迭代代码如下:

func maxDepth(root *TreeNode) int {
   if root == nil{
       return 0
   }
   var res int
   var query []*TreeNode
   query = append(query,root)

   for len(query) > 0{
       res++
       n:= len(query)
       for n > 0 {
           n--
           node := query[0]
           query = query[1:]
           if node.Left != nil{
               query = append(query,node.Left)
           }
           if node.Right != nil{
               query = append(query,node.Right)
           }
       }
   }
   return res
}
posted @   小星code  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示