天天看點

LeetCode:Balanced Binary Tree

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;
    }
};