二叉树高度是二叉树的重要知识点,在日常练习中我们会经常碰见这种类型的题目。求解二叉树的高度可以用递归方式。
递归求解二叉树高度
int GetHeight(BinTree BT){
int h1;
int h2;
if(!BT)
return 0;
else{
h1 = GetHeight(BT->left);
h2 = GetHeight(BT->right);
return h1>h2?++h1:++h2;
}
}
这种方法是递归求解。h1最后得到的是二叉树左支深度最大值,h2是右支深度最大值,最后在递归的最外层进行两支的比较,返回较大值。
其中难点是如何理解递归的深层含义以及相应的逻辑。