429. N-ary Tree Level Order Traversal
429. N-ary Tree Level Order Traversal
题目
我的代码(递归实现)
"""
# Definition for a Node.
class Node:
def __init__(self, val, children):
self.val = val
self.children = children
"""
class Solution:
def levelOrder(self, root: 'Node') -> List[List[int]]:
li=[]
def level_traverse(T,depth):
nonlocal li
if T:
if len(li)>depth:
li[depth].append(T.val)
else:
li.append([T.val])
for n in T.children:
level_traverse(n,depth+1)
level_traverse(root,0)
return li
优秀代码
class Solution:
def levelOrder(self, root: 'Node') -> 'List[List[int]]':
ans = []
base = [root]
while base:
nb = []
cur = []
for i in base:
if i:
cur.append(i.val)
nb+ = i.children
if cur:
ans.append(cur)
base = nb
return ans
ans:结果。base:本层的结点列表。nb:下一层的结点列表。cur:本层取得得值。