LeetCode 107. 二叉樹的層次遍歷 II
阿新 • • 發佈:2020-11-26
107. 二叉樹的層次遍歷 II
Difficulty: 簡單
給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:
給定二叉樹 [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回其自底向上的層次遍歷為:
[
[15,7],
[9,20],
[3]
]
Solution
Language: 全部題目
這是一道102. 二叉樹的層序遍歷的變種題目,如果之前做過這道題應該很簡單,只需要注意把返回的結果也剛到一個佇列裡面,就能保證是從底部往上遍歷的。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None from collections import deque class Solution: def levelOrderBottom(self, root: TreeNode) -> List[List[int]]: if not root: return [] queue, resQueue = deque([root]), deque() while queue: curLevel, size = [], len(queue) for i in range(size): node = queue.popleft() if node.left: queue.append(node.left) if node.right: queue.append(node.right) curLevel.append(node.val) resQueue.appendleft(curLevel) return list(resQueue)