劍指Offer 從上往下列印二叉樹

2021-10-04 02:25:46 字數 511 閱讀 5683

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

首先根據題目的意思,我們二叉樹的列印順序是(假設我們列舉的結點都存在)

root->root的左子->root的右子->root的左子的左子->root的左子的右子->root的右子的左子....

實際上就是實現二叉樹的層次遍歷

ⅰ:首先我們需要乙個佇列,先進先出的佇列,首先讓root結點入隊。

ⅱ:如果佇列不空,執行出隊,列印出隊的結點,然後判斷出隊的左右結點是否為空。如果不為空,依次加入到佇列裡,重複執行

?:直到隊列為空,遍歷結束

/*

struct treenode

};*/

class solution

if(m_tempnode->right != null)

result_vec.push_back(m_tempnode->val);

}return result_vec;

}};

劍指offer 從上往下列印二叉樹

定義乙個佇列,依次加入佇列頭的子節點,並將佇列頭出佇列,知道隊列為空 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution 返回從上到下每個節點值列表,...

劍指offer 從上往下列印二叉樹

題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。其實就是二叉樹的層序遍歷 遍歷結果 a b c d e f g h 先存進去的節點先列印,這樣的特性不就和佇列fifo的特性相同了嗎?處理的方法就是將二叉樹的節點從上到下,從左到右的存入佇列中,然後逐個列印。struct treenod...

劍指offer 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。二叉樹的廣度優先遍歷 struct treenode class solution return res 說到遍歷,dfs的遞迴和非遞迴寫法非常熟悉,我心血來潮,覺得bfs的遞迴寫法好像很陌生啊,於是開始寫 void bfs treenode r...