leetcode 559 N叉树的最大深度
题目
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
思路
使用队列存储树的一层的所有元素
因为node.children为列表,还要循环遍历所有子节点,并存储到数组和队列中。
如果数组不为空则,深度加一。
代码
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def maxDepth(self, root: 'Node') -> int:
Depth = 0
if not root:
return Depth
Depth = 1
queue = [root] #队列
while queue:
temp = [] #数组
for i in range(len(queue)):
node = queue.pop(0) #出队
for child in node.children: #如何优化
if child:
queue.append(child)
temp.append(child)
if temp != []:
Depth += 1
return Depth
```