刷演算法 按照之字形列印二叉樹

2021-09-13 12:45:25 字數 457 閱讀 4093

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推

第一反應可以按照普通的層次遍歷然後再把第2、4、6等等偶數層的結果翻轉一下,但是那樣子效率太低。

上網查閱可以使用雙向佇列,即兩頭都可以進和出。需要從左到右列印的從佇列頭部進入和彈出,需要從右往左列印的從佇列尾部進入和彈出

/* function treenode(x)  */

function print(r)

ds.unshift(null);

}else

ds.push(null);

}res.push(temp);

dir = dir === "r" ? "l" : "r";

}return res;

}module.exports = ;

之字形列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。include include include binarytree.h using namespace std void bprint binarytre...

之字形列印二叉樹

請實現乙個函式按照之字形順序從上向下列印二叉樹。即第一行按照從左到右的順序列印,第二層按照從右到左的順序列印,第三行再按照從左到右的順序列印,其他行以此類推。樣例輸入如下圖所示二叉樹 8,12,2,null,null,6,4,null,null,null,null 8 12 2 6 4 輸出 8 2...

之字形列印二叉樹

思路 首先我們需要逐層列印二叉樹,然後根據每一層的狀態判定是從左到右,還是從右到左。首先問題的核心其實是從上到下,從左到右列印二叉樹,只不過後面題目多了兩個要求,所以我們2 的大體框架應該是基於從上到下列印二叉樹 其次逐層列印二叉樹,實際上就是讓我們對每一層設定標誌位,然後根據標誌位去決定列印的情況...