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
}

浙公网安备 33010602011771号