- See Code traditional BFS.
Complexity T : O(n) M : O(max(level lenth))
"""
# 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]]:
if not root:
return []
res = [[root.val]]
level = [root]
while level:
new_level = []
for node in level:
new_level += node.children
if new_level:
res.append([node.val for node in new_level])
level = new_level
return res