劍指offer 面試題32 從上到下列印二叉樹

2021-09-13 12:49:39 字數 1294 閱讀 9144

不分行從上到下列印二叉樹:從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。

class binarytreenode

使用佇列來完成,列印的同時也在往裡面加入。

public

void

fun(binarytreenode root)

queue

queue =

newlinkedlist

<

>()

; queue.

add(root)

;while

(!queue.

empty()

)if(temp.right != null)

}}

從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印 ,每一層列印一行。

同樣是層序遍歷,與上一題不同的是,此處要記錄每層的節點個數,在每層列印結束後多列印乙個回車符。

public

void

fun(binarytreenode root)

queue

queue =

newlinkedlist

<

>()

; queue.

add(root)

;while

(!queue.

empty()

)if(temp.right != null)}

system.out.

println()

;}}

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

列印之字形的二叉樹,需要兩個棧。當我們在列印某一行結點時,把下一層的子結點儲存到相應的棧裡。如果當前列印的是奇數層,則先儲存左子結點再儲存右子結點到乙個棧裡;如果當前列印的是偶數層,則先儲存右子結點再儲存左子結點到第二個棧裡。

public arraylist

>

print

(treenode proot)

if(s1.

peek()

.left != null)

s1.pop();

}}else

if(s2.

peek()

.right != null)

s2.pop();

}}if(tmp.

size()

>0)

}return result;

}

劍指Offer面試題 21 從上到下列印二叉樹

題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。例如輸入下圖中的二叉樹,則依次列印出8 6 10 5 7 9 11。二叉樹節點的定義如下,採用c 語言描述 public class binarytreenode public binarytreenode leftchild...

劍指Offer之面試題23 從上往下列印二叉樹

所有 均通過g 編譯器 測試,僅為練手紀錄。面試題 23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。面試題23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。void treeprintbreadth...

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...