劍指offer 從上往下列印出二叉樹

2021-09-09 05:30:02 字數 628 閱讀 4347

題目:

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

思路:廣度優先搜尋

/*

struct treenode

};*/

class solution ;

while(!q.empty())

return v;

}};

小見:

首先,本題中使用的廣度優先搜尋思想,是指,借助佇列按層儲存節點,然後只要按順序列印就好了。

具體過程如下:

1、準備:建立乙個節點型(需要搜尋的節點的型別)佇列,用來存放每一層的頂點;

建立乙個int型陣列,用來記錄被訪問過的頂點(此處存放該頂點的值);

2、從某個節點(根節點)開始訪問,將這個節點的值設為true,同時入隊;

3、只要佇列不空,重複如下操作:

(1)隊頭頂點出隊;

(2)依次檢查該頂點的所有鄰接節點(左右子樹),如果值為falsh,則訪問、置為true併入隊,反之不訪問;

備註:在二叉樹中不存在重複訪問的情況,即不存在多對一的情況,所以這一步不需要;而用來記錄訪問節點的陣列在本題中可以作為存放各頂點的值(它的使用順序與節點入隊順序一致);

廣度借助佇列,深度借助棧

劍指Offer Python 從上往下列印二叉樹

題目 從上往下列印二叉樹 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution 返回從上到下每個節...

劍指offer 從上往下列印二叉樹

定義乙個佇列,依次加入佇列頭的子節點,並將佇列頭出佇列,知道隊列為空 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution 返回從上到下每個節點值列表,...

劍指offer 從上往下列印二叉樹

題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。其實就是二叉樹的層序遍歷 遍歷結果 a b c d e f g h 先存進去的節點先列印,這樣的特性不就和佇列fifo的特性相同了嗎?處理的方法就是將二叉樹的節點從上到下,從左到右的存入佇列中,然後逐個列印。struct treenod...