給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹 [3,9,20,null,null,15,7],
39 20
/ \
15 7
返回其自底向上的層次遍歷為:
[[15,7],
[9,20],
[3]程式輸出為:
15 7 9 20 3
首先輸入結點的數目n(注意,這裡的結點包括題中的null空結點)
然後輸入n個結點的資料,需要填充為空的結點,輸入null。
輸出結果,每個資料的後面跟乙個空格。
739
20 null null 15
7
1579
203
#include
#include
#include
#include
#include
using
namespace std;
struct treenode
treenode
(int x)
:val
(x),
left
(null),
right
(null
)treenode
(int x, treenode *left, treenode *right)
:val
(x),
left
(left)
,right
(right)};
treenode*
inputtree()
if(count==n)
break
; cin>>item;
count++;if
(strcmp
(item,
"null")!=
0)}return root;
}int
main()
}
層次遍歷使用佇列(queue)儲存節點,因為要按照層次輸出節點資料,所以儲存的時候也要按照層次儲存。每次在佇列中剩餘的節點就是該層的所有節點,將它們的值轉化出來儲存,同時將各個節點的左右子節點壓入佇列。
class
solution
}//如果該層有節點不是空層if(
!levelnodes.
empty()
)}reverse
(result.
begin()
,result.
end())
;return result;}}
;
二叉樹層次遍歷II
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其自底向上的層次遍歷為 15,7 9,20 3 definition for a binary tree ...
二叉樹的層次遍歷 II
給出一棵二叉樹,返回其節點值從底向上的層次序遍歷 按從葉節點所在層到根節點所在的層遍歷,然後逐層從左往右遍歷 您在真實的面試中是否遇到過這個題?yes 樣例給出一棵二叉樹,3 9 20 15 7按照從下往上的層次遍歷為 15,7 9,20 3 definition of treenode class...
二叉樹的層次遍歷 II
給出一棵二叉樹,返回其節點值從底向上的層次序遍歷 按從葉節點所在層到根節點所在的層遍歷,然後逐層從左往右遍歷 例1 輸入 輸出 2,3 1 解釋 1 2 3 它將被序列化為 層次遍歷例2 輸入 輸出 15,7 9,20 3 解釋 3 9 20 15 7 它將被序列化為 層次遍歷 definition...