目錄
一、題目內容
二、解題思路
三、**
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹 [3,9,20,null,null,15,7],
3
/ \9 20
/ \
15 7
返回其自底向上的層次遍歷為:佇列每次儲存每個深度的所有節點,每層開始新建乙個list存入,之後在該list中新增本深度的元素。[
[15,7],
[9,20],
[3]]
# definition for a binary tree node.
class treenode:
def __init__(self, x):
self.val = x
self.left = none
self.right = none
class solution:
def levelorderbottom(self, root: treenode) -> list:
if not root:
return
res =
queue = [root]
depth = 1
while queue:
next_q =
for q in queue:
if len(res) < depth:
else:
if q.left:
if q.right:
depth += 1
queue = next_q
res.reverse()
return res
if __name__ == '__main__':
a = treenode(3)
a.left = treenode(9)
a.right = treenode(20)
a.right.left = treenode(15)
a.right.right = treenode(7)
s = solution()
ans = s.levelorderbottom(a)
print(ans)
LeetCode 107 二叉樹的層次遍歷
題目描述 給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 解題思路 此題跟102基本一樣,就是在輸出時是自底...
leetCode 107 二叉樹層次遍歷II
按層次從頂至下遍歷,將每層結點加在佇列尾部,每次從頭部取出一層結點。使用棧將結果反轉。definition for a binary tree node.public class treenode class solution if root.right null stack.push temp 棧...
leetcode 107 二叉樹的層次遍歷 II
前言 python刷leetcode題解答目錄索引 正文 給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 d...