方法一:递归
思路:
- 如果当前节点为空直接返回0
- 遍历所有的子节点,对于每一个子节点求出最大的深度,然后动态更新最大的深度
- 最后返回遍历完的动态更新保存的最大深度
/*** Definition for a Node.* type Node struct {* Val int* Children []*Node* }*/func maxDepth(root *Node) int {if root == nil {return 0}ret := 1temp := 0for _, child := range root.Children {temp = maxDepth(child)if temp + 1 > ret {ret = temp + 1}}return ret}
