您的位置:首页 > 其它

LeetCode "Balanced Binary Tree"

2014-07-21 07:38 337 查看
Another recursion problem.

class Solution {
public:
int getHeight(TreeNode *p)
{
if (!p) return 0;

int hL = 1;
if (p->left) hL = 1 + getHeight(p->left);
int hR = 1;
if (p->right) hR = 1 + getHeight(p->right);

return (hL > hR ? hL : hR);
}
bool isBalanced(TreeNode *root) {
if (!root || (!root->left && !root->right)) return true;

bool bLeft = isBalanced(root->left);
if (!bLeft) return false;
bool bRight = isBalanced(root->right);
if (!bRight) return false;
{
int hL = getHeight(root->left);
int hR = getHeight(root->right);
if (abs(hL - hR) < 2) return true;
}
return false;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: