LeetCode Z字形遍歷二叉樹

2021-10-03 04:55:46 字數 1129 閱讀 6184

利用佇列,從前向後在佇列中取資料時,此時向佇列中插入資料,插在佇列尾部;從後向前在佇列中取資料時,此時若插入資料,插在佇列頭部。感覺這種思路比較容易想到。時間還能接受

0#記錄層數

status =

true

#用於判斷從佇列中讀取資料的順序

while q:

)if status:

for _ in

range

(len

(q))

: node = q.popleft(

)#從前向後在佇列中取資料,則往佇列中插入時,新增在佇列尾部

res[count]

if node.left:

if node.right:

else

:for _ in

range

(len

(q))

: node = q.pop(

)#從後向前在佇列中取資料,則往佇列中插入資料時,新增在佇列頭部

res[count]

if node.right:

q.insert(

0, node.right)

if node.left:

q.insert(

0, node.left)

count +=

1 status =

not status

return res

二叉樹之字形遍歷

給定乙個二叉樹,返回該二叉樹的之字形層序遍歷,第一層從左向右,下一層從右向左,一直這樣交替 例如 給定的二叉樹是,該二叉樹之字形層序遍歷的結果是 3 20,9 15,7 實現 通過使用兩個棧來實現之字形遍歷,第乙個棧儲存從左到右的遍歷的層,第二個棧儲存從右到左遍歷的層。其中第乙個棧出棧的元素,再將其...

二叉搜尋樹的後續遍歷序列 之字形列印二叉樹

解題思路 這道題第一次沒有思路,有了思路之後很簡單 就是,後序遍歷最後乙個元素就是根節點,然後重新遍歷整個序列 這個序列,一旦遇到了大於跟結點的數字,那麼就不可能再遇到小於根節點的數字了,一旦遇到了,就說明這個序列不是合格的二叉搜尋樹的後續遍歷序列 class solution for i i si...

之字形列印二叉樹

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