您的位置:首页 > 其它

LeetCode:Balanced Binary Tree

2015-10-23 13:28 323 查看
标题叙述性说明:

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

思路:当树的左子树的高度与右子树的高度相差小于一,且左右子树各自都为平衡二叉树时,树为平衡二叉树。

代码:
bool Solution::isBalanced(TreeNode *root)
{
if(root == NULL)
return true;
if(abs(treeHeight(root->left) - treeHeight(root->right)) > 1)
return false;
return isBalanced(root->left) && isBalanced(root->right);
}

int max(int a,int b)
{
return a > b ? a : b;
}

int Solution::treeHeight(TreeNode * root)
{
if(root == NULL)
return 0;
return max(treeHeight(root->left),treeHeight(root->right)) + 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: