二叉树是一种递归定义的数据结构,我们对它做的几乎所有的操作都是递归的。求树的高度也是如此。分别求左右子树的高度,然后取较长的子树作为高度。代码上传至 https://github.com/chenyufeng1991/BinaryTreeHeight 。
核心代码如下:
int BinaryTreeHeight(Node *node)
{
int treeHeight = 0;
if (node != NULL)
{
int leftHeight = BinaryTreeHeight(node->lChild);
int rightHeight = BinaryTreeHeight(node->rChild);
treeHeight = leftHeight >= rightHeight? leftHeight + 1:rightHeight + 1;
}
return treeHeight;
}