給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹 [3,9,20,null,null,15,7],
3/ \
9 20
/ \15 7
返回其自底向上的層次遍歷為:
[[15,7],
[9,20],
[3]]
方法1:佇列和map,
一開始想的是使用map,key存放level,value存放對應的值。但是發現幾乎沒有人這樣做,大家都採用的是棧和佇列。不過也算是複習了一下map。
思想與leetcode102很像,只不過在輸出方式上發生變化。
class
solution
; queue,int
>> q;
q.push
(make_pair
(root,0)
);while
(!q.
empty()
)int n = res.
size()
; vectorint>> result;
for(
int i = n-
1; i >=
0; i--
) result.
push_back
(res[i]);
// 將level從大到小放入
return result;}}
;
方法2:
使用棧和佇列。
class
solution
; vectorint>> res;
queue> q;
// 產生層次遍歷
stackint>> s;
//儲存層次遍歷的結果
q.push
(root)
;while
(!q.
empty()
) s.
push
(temp);}
while
(!s.
empty()
)return res;}}
;
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...