1. 程式人生 > 其它 >【python高效解題】Leetcode-102:二叉樹的層序遍歷

【python高效解題】Leetcode-102:二叉樹的層序遍歷

技術標籤:演算法題列表二叉樹leetcodepython演算法

我們的宗旨是:使用最簡潔的程式碼,完成AC:)

題目介紹

**題目難度:**Medium
**題目型別:**tree | breadth-first-search

給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。

示例:
二叉樹:[3,9,20,null,null,15,7],
在這裡插入圖片描述
返回其層序遍歷結果:
在這裡插入圖片描述

題目介紹

該題的做題思路緊緊圍繞樹的層遍歷,需要注意維護好輸出結果的二維列表ans、當前層節點列表level、下一層節點列表tmp,每層遍歷時注意及時更新tmp、level即可:)

python程式碼

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        ans, level = [], [root]
        while level:
            ans.append([node.val for node in level])
            tmp = []
            for node in level:
                tmp.
extend([node.left, node.right]) level = [node for node in tmp if node] return ans