引用:
作者: imgen int BinaryTreeHeight(node *p, int&maxHeightSum)
{
if (!p)
{
return 0;
}
int leftHeight = BinaryTreeHeight(p->left, maxHeightSum);
int rightHeight = BinaryTreeHeight(p->right, maxHeightSum);
maxHeightSum = max(leftHeight+leftHeight, maxHeightSum);
return max(leftHeight, rightHeight) + 1;
}
int findRadOfTree(node* head)
{
int maxHeightSum = 0;
BinaryTreeHeight(head, maxHeightSum);
return maxHeightSum;
} |
这个实现有问题吧,这句是什么意思:
maxHeightSum = max(leftHeight+leftHeight, maxHeightSum);
左子树为空就返回零了
改成
maxHeightSum = max(leftHeight+rightHeight, maxHeightSum);
也不对