題目描述
請實現乙個函式按照之字形順序從上向下列印二叉樹。
即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。
樣例
輸入如下圖所示二叉樹[8, 12, 2, null, null, 6, 4, null, null, null, null]
8/ \
12 2
/ \6 4
輸出:[[8], [2, 12], [6, 4]]
思路
分層遍歷二叉樹,然後將奇數層(從0開始)的陣列反轉。
class
solution
return res;
}void
levelorder
(treenode* root,
int level, vectorint>>
& res));
res[level]
.push_back
(root-
>val);if
(root-
>left)
levelorder
(root-
>left, level+
1, res);if
(root-
>right)
levelorder
(root-
>right, level+
1, res);}
};
劍指offer 之字形列印二叉樹
請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。利用兩個棧 定義乙個兩個棧的陣列 用current和next分別指示當前層和下一層,如果當前層是奇數層 current 0 則下一層先入棧左節點再入棧右節點...
劍指offer 之字形列印二叉樹
請實現乙個函式按照之字形順序從上向下列印二叉樹。即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。輸入如下圖所示二叉樹 8,12,2,null,null,6,4,null,null,null,null 8 12 2 6 4 輸出 8 2,1...
劍指Offer 之字形列印二叉樹 Python
題目要求 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。解題思路 之字形列印 先遍歷後進來的節點的子樹 類似於棧的思想 設定乙個棧用來裝上一層的節點 源節點,根據這乙個棧的節點遍歷它的左右子樹,遍歷完這...