題目描述
給定一個 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
題後反思:
文中都是我個人的理解,如有錯誤的地方歡迎下方評論告訴我,我及時更正,大家共同進步