[LeetCode]429. N叉樹的層序遍歷 ★

題目描述

給定一個 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

題後反思:

  1. 因爲要輸出每一層,所以設置了兩個隊列。

C語言解法


執行用時 : ms
內存消耗 : MB

題後反思:

文中都是我個人的理解,如有錯誤的地方歡迎下方評論告訴我,我及時更正,大家共同進步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章