LeetCode 559. N 叉树的最大深度

题目链接:LeetCode 559. N 叉树的最大深度

题意:

给定一个 N 叉树,找到其最大深度。

解题思路:

1.递归法

对于递归法,就是遍历每个节点的所有的孩子节点,然后取最大值

递归代码如下

func maxDepth(root *Node) int {
    if root == nil {
        return 0
    }
    var res int
    for i:=0;i<len(root.Children);i++{
        res  =  max(res,maxDepth(root.Children[i]))
    }
    return res +1
}
func max(a,b int)int{
    if a > b{
        return a
    } 
    return b
}

2.迭代法

对于迭代法,最合适的仍然是层序遍历,每遍历一层,就是深度加 1

迭代代码如下:

func maxDepth(root *Node) int {
    if root == nil {
        return 0
    }
    var res int
    var query []*Node
    query = append(query,root)
    for len(query) > 0 {
      res++
      n := len(query)
        for n > 0{
            n--
            node := query[0]
            query = query[1:]
            if node.Children != nil{
                query = append(query,node.Children...)
            }
        }
    } 
    return res 
}
posted @ 2023-05-16 14:44  小星code  阅读(15)  评论(0)    收藏  举报