思路:二叉树的深度和它的左、右子树深度之间的关系。从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加1。由此,需先分别求得左、右子树的深度,求得左、右子树深度的最大值,然后加 1 即为二叉树的高度;可以递归的调用二叉树深度函数。
int GetHeight(BinTree BT){
int high=0;//节点总数
int depthleft,depthright;
if(BT==NULL){
return 0;
}else{
depthleft=GetHeight(BT->Left);
depthright=GetHeight(BT->Right);
if(depthleft>=depthright){
high=1+depthleft;
}else{
high=1+depthright;
}
}
//先将二叉树层次遍历一遍,求出节点总数
return high;
}