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


你可能感兴趣的:(LeetCode,tree,search,Depth-first)