leetcode 107二叉樹的層序遍歷

2021-10-04 13:29:52 字數 1154 閱讀 1722

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:給定二叉樹 [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...