题目描述
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :
样例
返回其层序遍历:
python解法
"""
# 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]]:
from queue import Queue
q = Queue()
current = Queue()
if root:
q.put(root)
lis = []
result = []
while not q.empty():
node = q.get()
for child in node.children:
current.put(child)
lis.append(node.val)
if q.empty():
result.append(lis)
lis = []
while not current.empty():
q.put(current.get())
return result
执行用时 : 888ms
内存消耗 : 95.5MB
题后反思:
- 因为要输出每一层,所以设置了两个队列。
C语言解法
执行用时 : ms
内存消耗 : MB
题后反思:
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步