從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
bfs:
//層次遍歷
class solution
vec.push_back(c);
}return vec;
}};
法二:(按之字形列印用兩個棧,按順序列印就用兩個佇列!這樣比較好寫好記~)
//兩個佇列交錯列印
class solution
if(v1.size()!=0)
ret.push_back(v1);
while(!q2.empty())
if(v2.size()!=0)
ret.push_back(v2);
}return ret;
}};
法三:用linkedlist實現
/*
* 佇列linkedlist完成層序遍歷,用end記錄每層結點數目
*/public class solution
queuelayer = new linkedlist();
arraylistlayerlist = new arraylist();
layer.add(proot);
int start = 0, end = 1;
while(!layer.isempty())
if(cur.right!=null)
if(start == end)
}return result;
}}
60 劍指offer 把二叉樹列印成多行
題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。解題思路 可以直到,每次列印乙個結點,然後列印下一行時總是先列印其左子結點,然後列印其右子結點。先入先出,使用佇列處理。使用tobeprint記錄當前行列印的個數,每存入乙個 1 nextlevel記錄下一行列印結點個數 一行...
劍指offer60 把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。二叉樹的層序遍歷高階版 基礎版 二叉樹的層序遍歷,乙個陣列輸出,不用記錄當前層有沒有遍歷完 基礎版層序遍歷 高階版 本題,要記錄當前層有沒有遍歷完 高階版plus 按之字形列印,不但要記錄當前層有沒有遍歷完,還要記錄當前遍歷的層數 之字...
劍指offer(60)把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。從上到下列印二叉樹我們知道用佇列可以實現,但是如果多行列印怎麼做呢?我們需要分割,在行與行之間進行分割。如何分割呢?肯定要知道個數才能分割。可是我又如何知道這一行有多少個呢?這就是重點了,我們可以通過遍歷上一層,通過它們的子樹就可以知道...