60 劍指offer 把二叉樹列印成多行

2021-10-22 23:40:01 字數 804 閱讀 8298

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

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)把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。從上到下列印二叉樹我們知道用佇列可以實現,但是如果多行列印怎麼做呢?我們需要分割,在行與行之間進行分割。如何分割呢?肯定要知道個數才能分割。可是我又如何知道這一行有多少個呢?這就是重點了,我們可以通過遍歷上一層,通過它們的子樹就可以知道...