乙個樹的深度等於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...