题目
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树 :
我们应返回其最大深度,3。
说明:
- 树的深度不会超过 1000。
- 树的节点总不会超过 5000。
算法
DFS
Python3代码
class Solution:
def maxDepth(self, root: 'Node') -> int:
def DFS(root):
ls = [] #记录除root之外,以各节点为根节点的子树的高度
if not root:return 0
if not root.children:return 1
for i in root.children:
print(i.val)
ls.append(DFS(i)) #记录子树高度
print(ls)
k = max(ls) + 1
return k
return DFS(root)
改进版
Python3代码
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:return 0
if not root.children:return 1
return max([self.maxDepth(i) for i in root.children]) + 1