| |||
| 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); 也不对 |