给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树 :
我们应返回其最大深度,3。
说明:
树的深度不会超过 1000。
树的节点总不会超过 5000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
_______________________________________________________________________________________________________
思路:每一层遍历子节点,分别找到以这些节点为根的树的最大深度,自底向上进行汇总。
python 实现:
class Solution:
def maxDepth(self, root: 'Node') -> int:
def run(root):
if root is None:
return 0
depth = 0
for child in root.children :
depth = max(depth,run(child))
return depth + 1
return run(root)
go实现:
func maxDepth(root *Node) int {
if root == nil {
return 0
}
max := 0
for _,v := range root.Children {
t := maxDepth(v)
if max < t {
max = t
}
}
return max + 1
}