天天看點

劍指offer系列之二十一:從上到下列印二叉樹

題目描述

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

此題實際上就是二叉樹層序周遊方法的考察,具體思路是:使用一個集合(或者棧,但是相對來說使用棧操作會友善一些)來儲存周遊的節點,還需要建立一個集合用來儲存最後輸出的周遊序列。從根節點開始周遊,首先把該節點放入集合中,并輸出其值,之後便從集合中移除該節點,不過在此之前需要判斷該節點是否有左右孩子,如果有左右(滿足其一就可以)孩子,便把左右孩子放入集合中。每次輸出值後便把節點具體的值放入周遊集合中,作為最後的傳回結果。

下面是基于這種思路寫出的代碼: