微軟面試題 寫程式找出二叉樹的深度

2021-09-23 21:15:01 字數 513 閱讀 7867

乙個樹的深度等於max(左子樹深度,右子樹深度)+1。可以使用遞迴實現。

int depthoftree(bitreenode* root)

return max(depthoftree(root->leftchild), depthoftree(root->rightchild))+1;

}

也可以採用下面的思路:

類似於遞迴的先序遍歷,層層向下計算,每向下計算一層,深度 

就加1,caltreedepth(pnode pn, unsigned n)中的第二個 

引數表示上一層的深度,所以程式在呼叫時, 假設proot為整個 

樹的根節點,則其深度depth為: 

unsigned depth = caltreedepth(proot, 0); 

*/ **如下:

unsigned caltreedepth(pnode pn, unsigned n)

return d;

}

層次遍歷二叉樹 微軟面試題

這也是網路流傳的microsoft的面試題目之一 怎樣從頂部開始逐層列印二叉樹結點資料?請程式設計 這個題目實際上很簡單,採用佇列的方式很容易可以實現 void hiberarchyretriveatree treenode root,void visit treenode queuetree tr...

二叉樹面試題

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

面試題 二叉樹

面試題 二叉樹 1.重建二叉樹 前序 中序 treenode reconstructbinarytree vector pre,vector vin treenode root new treenode pre 0 int pos 0 for pos pre left,vin left,pre ri...