42 二叉樹的層次遍歷 II

2021-10-09 04:26:59 字數 1405 閱讀 5037

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

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