題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
解題思路:可以直到,每次列印乙個結點,然後列印下一行時總是先列印其左子結點,然後列印其右子結點。先入先出,使用佇列處理。使用tobeprint記錄當前行列印的個數,每存入乙個-1;nextlevel記錄下一行列印結點個數;一行列印完,tobeprint = nextlevel;nextlevel = 0;
1/*2struct treenode 9};
10*/
11class
solution
31if(pnode->right !=null)
3236
nodes.pop();
37 --tobeprint;
38if(tobeprint == 0)//
一行已列印完
3945}46
return
result;47}
48 };
60 劍指offer 把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。bfs 層次遍歷 class solution vec.push back c return vec 法二 按之字形列印用兩個棧,按順序列印就用兩個佇列!這樣比較好寫好記 兩個佇列交錯列印 class solution if v1.si...
劍指offer60 把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。二叉樹的層序遍歷高階版 基礎版 二叉樹的層序遍歷,乙個陣列輸出,不用記錄當前層有沒有遍歷完 基礎版層序遍歷 高階版 本題,要記錄當前層有沒有遍歷完 高階版plus 按之字形列印,不但要記錄當前層有沒有遍歷完,還要記錄當前遍歷的層數 之字...
劍指offer(60)把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。從上到下列印二叉樹我們知道用佇列可以實現,但是如果多行列印怎麼做呢?我們需要分割,在行與行之間進行分割。如何分割呢?肯定要知道個數才能分割。可是我又如何知道這一行有多少個呢?這就是重點了,我們可以通過遍歷上一層,通過它們的子樹就可以知道...