之字形列印二叉樹

2021-10-07 10:01:17 字數 1015 閱讀 4915

思路:

首先我們需要逐層列印二叉樹,然後根據每一層的狀態判定是從左到右,還是從右到左。

首先問題的核心其實是從上到下,從左到右列印二叉樹,只不過後面題目多了兩個要求,所以我們2**的大體框架應該是基於從上到下列印二叉樹;

其次逐層列印二叉樹,實際上就是讓我們對每一層設定標誌位,然後根據標誌位去決定列印的情況;

最後之字形,其實還是根據標誌位去決定正序,還是逆序列印;

/*struct treenode 

};*/

class

solution

; vectorint>

> pr;

vector<

int> currrow;

//儲存當前行資料

deque> treedeque;

//基礎框架,佇列決定了從上到下列印二叉樹

deque<

int> sign;

//標誌位佇列,當然也可以使用其他方法

treedeque.

push_back

(proot)

; sign.

push_back(1

);while

(!treedeque.

empty()

)if(temp-

>right !=

nullptr)if

(!sign.

empty()

&& i != sign.

front()

)//是否當層所有資料儲存完畢;}

else

//偶數層逆轉列印;}

}if(sign.

empty()

&&!currrow.

empty()

)//最後一層時,sign為空,所以單獨操作一下;}

else;}

}}return pr;}}

;

之字形列印二叉樹

請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。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...

之字形列印二叉樹

題目描述 請實現乙個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。class treenode def init self,x self.val x self.left none self.right none ...