面試題32 分層列印二叉樹

2021-10-06 12:44:39 字數 947 閱讀 3048

題目1:按層次從根節點列印二叉樹,每一層分行列印

//層級按行二叉樹

void

printnodeintreehierachyinzstyle

(treenode *root)

if(node-

>rightchild !=

null

) auxqueue.

pop();

currentcount--;if

(currentcount ==0)

else

}}

題目2:按層次從根節點列印二叉樹,按照z字型的方式列印,第一層正序列印,第二層逆序列印,第三層正序列印…………

思路:用兩個棧實現:奇數層壓第乙個棧,偶數層壓第二個棧。列印第乙個棧中元素時,在第二個棧中先壓該節點的左子節點,後壓右子節點;列印第二個棧中元素時,在第乙個棧中先壓該節點的右子節點,後壓左子節點

**:

//z字型列印二叉樹

void

printnodeintreehierachyinzstyle

(treenode *root)

if(node-

>rightchild !=

null

) stack1.

pop();

} cout << endl;

while

(!stack2.

empty()

)if(node-

>leftchild !=

null

) stack2.

pop();

} cout << endl;

}}

面試題 分層遍歷二叉樹

程式設計之美上的題目。問題1 給定一棵二叉樹,要求按分層遍歷該二叉樹,即從上到下按層次訪問該二叉樹 每一行將單輸出一行 每一層要求訪問的順序為從左向右,並將節點依次編號。問題2 寫乙個函式,列印二叉樹中某層次的節點 從左向右 其中根結點為第1層。include iostream include qu...

面試題32 從上往下列印二叉樹

題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。include include include include include include using namespace std struct binarytreenode void printfromtoptobott...

二叉樹面試題

1.求二叉樹節點個數 可以使用遞迴解決。將問題分解為求根節點 左子樹的節點數 右節點的節點數。實現 public size t size private size t size node root 2.求頁節點個數 頁節點 左右子樹都為空的節點被稱為頁節點,使用遞迴遍歷,當碰到乙個左右子樹為空的節點...