60 把二叉樹列印成多行

2021-09-27 18:48:12 字數 580 閱讀 8450

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

【分析】

和59題類似,使用兩個佇列實現。從左至右列印當前行的結點時,將當前結點在下一行的左、右子結點放入佇列中,列印下一行時從佇列取出即可。

保證列印完一行後將佇列置空,儲存下一行。

/*

struct treenode

};*/

class solution

if(que1.front()->right!=null)//右結點第二個入佇列

que1.pop();//記得列印完彈空佇列

}if(!vec1.empty())

while(!que2.empty())//佇列不為空時,把當前結點的左右結點入另乙個隊,再依次取出佇列頭並刪除

if(que2.front()->right!=null)

que2.pop();//記得列印完彈空佇列

}if(!vec2.empty())

}return result;

}};

把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。中序遍歷,使用佇列,將每一行的元素依次壓入佇列,每將佇列中元素彈出乙個就將其左右子節點壓入佇列。在每一行的開始節點時,佇列中元素的個數就是下一行節點的個數,通過計數取出該行所有元素。struct treenode class solut...

把二叉樹列印成多行

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

把二叉樹列印成多行

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