【python高效解題】Leetcode-102:二叉樹的層序遍歷
阿新 • • 發佈:2021-02-03
技術標籤:演算法題列表二叉樹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