把二叉樹列印成多行

2021-09-10 12:51:09 字數 650 閱讀 4139

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

中序遍歷,使用佇列,將每一行的元素依次壓入佇列,每將佇列中元素彈出乙個就將其左右子節點壓入佇列。在每一行的開始節點時,佇列中元素的個數就是下一行節點的個數,通過計數取出該行所有元素。

/*

struct treenode

};*/

class solution

res.

push_back

(tmp)

; tmp.

clear()

;}return res;}}

;

使用兩個佇列,第一行元素壓入佇列1,列印第一行元素時,將第二行元素壓入佇列2,列印第二行元素時,將第三行元素壓入佇列1…,直到兩個佇列都為空。

/*

struct treenode

};*/

class solution if(

!tmp.

empty()

)while

(!q2.

empty()

)if(!tmp.

empty()

)}return res;}}

;

把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。先將根節點入隊 queuepush q,root while queueempty q 利用遞迴的方法進行先序遍歷,傳遞深度,遞迴深入一層擴容一層陣列,先序遍歷又保證了同層節點按從左到右入陣列,十分巧妙!他在不斷地擴容,最後答案類似這樣...

把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。先將根節點入隊 queuepush q,root while queueempty q 利用遞迴的方法進行先序遍歷,傳遞深度,遞迴深入一層擴容一層陣列,先序遍歷又保證了同層節點按從左到右入陣列,十分巧妙!他在不斷地擴容,最後答案類似這樣...

把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。先將根節點入隊 queuepush q,root while queueempty q 利用遞迴的方法進行先序遍歷,傳遞深度,遞迴深入一層擴容一層陣列,先序遍歷又保證了同層節點按從左到右入陣列,十分巧妙!他在不斷地擴容,最後答案類似這樣...