Balanced Binary Tree
Total Accepted: 114121 Total Submissions: 332812 Difficulty: Easy
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.
Subscribe to see which companies asked this question
Hide Tags Tree Depth-first Search Hide Similar Problems (E) Maximum Depth of Binary Tree
c++ code:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isBalanced(TreeNode* root) {
return balandeTree(root) != -1;
}
int balandeTree(TreeNode *root) {
if(NULL == root) return 0;
int lh = balandeTree(root->left);
int rh = balandeTree(root->right);
if(-1 == lh || -1 == rh || abs(lh-rh)>1)
return -1;
else
return max(lh,rh) + 1;
}
};