題目:
從上往下列印出二叉樹的每個節點,同層節點從左至右列印。
思路:廣度優先搜尋
/*
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...