
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x):val(x),left(NULL),right(NULL){}
};
class Solution
{
public:
int treeHeight(TreeNode* root)
{
if(root==NULL) return 0;
return max(treeHeight(root->left),treeHeight(root->right))+1;
}
bool isBalanced(TreeNode* root)
{
if(root==NULL) return true;
int left_Height=treeHeight(root->left);
int right_Height=treeHeight(root->right);
if(abs(left_Height-right_Height)<=1)
{
if(isBalanced(root->left) && isBalanced(root->right)) return true;
else return false;
}
return false;
}
};