不分行從上往下列印二叉樹

2021-09-26 01:43:46 字數 562 閱讀 3554

從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。

樣例輸入如下圖所示二叉樹[8, 12, 2, null, null, 6, null, 4, null, null, null]8/

12 2/6

/4輸出:[8, 12, 2, 6, 4]

就是寬度優先遍歷,如果該節點是left得想辦法遍歷完了他之後去找他的右兄弟

用佇列實現

先讓根節點進來作為佇列的首節點,然後彈出,將他的左右兒子按次序插入佇列

然後現在左兒子作為頭結點,將他彈出,將他的左二子和右兒子插入到佇列,

現在隊首是最開始的右兒子,將他彈出,把他的左二子和右兒子插入到佇列,

現在隊首又是之前左二子的左兒子,叢這一層開始就發現佇列確實實現的是逐層列印

public class treenode 

} public listprintfromtoptobottom(treenode root)

if(parent.right!=null)

}return res;

}

分行從上往下列印二叉樹

從上到下按層列印二叉樹,同一層的結點按從左到右的順序列印,每一層列印到一行。樣例 輸入如下圖所示二叉樹 8,12,2,null,null,6,null,4,null,null,null 8 12 2 6 4輸出 8 12,2 6 4 時間複雜度o n class solution q.offer r...

從上往下列印二叉樹

從上往下列印二叉樹需要乙個雙端佇列,stl提供了deque容器符合我們的要求,和測試 如下 include include include using namespace std struct binarytreenode binarytreenode createbinarytreenode in...

從上往下列印二叉樹

題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。思路 用佇列儲存將要列印的節點,出佇列時,將左節點和右節點分別加入佇列當中,直到隊列為空,列印完畢。public arraylist integer printfromtoptobottom treenode root queue qu...