AcWing 44 分行從上往下列印二叉樹

2021-09-22 02:43:35 字數 736 閱讀 8687

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

樣例

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

8/ \

12 2/6

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

此題需要將各個層的節點分別儲存到不同的陣列中。所以在while迴圈中,加了乙個for迴圈,迴圈次數是當前層的節點個數,這樣雖然在for迴圈中不斷的在佇列尾部加入當前層節點的孩子節點,但是由於for迴圈限定了彈出棧的次數為當前層節點的個數,所以在for迴圈結束時,out中正好儲存了當前層的所有節點,不多不少,同時棧中也只有下一層的所有節點,不多不少。然後在將out儲存到ans中之後,進入下一次while迴圈,重複上述過程。最後當某一層不存在非空節點,即棧為空時,退出while迴圈。返回ans。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution ;

vector> ans;

queues;

s.push(root);

while(!s.empty())

ans.push_back(out);

}return ans;

}};

AcWing 44 分行從上往下列印二叉樹

題目描述 從上到下按層列印二叉樹,同一層的結點按從左到右的順序列印,每一層列印到一行。樣例輸入如下圖所示二叉樹 8,12,2,null,null,6,null,4,null,null,null 8 12 2 6 4輸出 8 12,2 6 4 分析 方法一 每層入隊完成後對佇列裡加入乙個標誌空節點,注...

分行從上往下列印二叉樹

從上到下按層列印二叉樹,同一層的結點按從左到右的順序列印,每一層列印到一行。樣例 輸入如下圖所示二叉樹 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...

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

從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。樣例輸入如下圖所示二叉樹 8,12,2,null,null,6,null,4,null,null,null 8 12 2 6 4輸出 8,12,2,6,4 就是寬度優先遍歷,如果該節點是left得想辦法遍歷完了他之後去找他的右兄弟 ...