leetcode-Balanced Binary Tree

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.

<span style="font-size:12px;">/**
 * 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 {
    int helper(TreeNode *root,bool &res){
        if(!root)
            return 0;
        if(!root->left&&!root->right)
            return 1;
        
        int left =helper(root->left ,res);
        if(res==false)
            return -1;
        int right=helper(root->right,res);
        if(res==false)
            return -1;
        
        if(abs(left-right)>1)
            res=false;
        return max(left,right)+1;    
        
    }

public:
    bool isBalanced(TreeNode* root) {
        bool res=true;
        helper(root,res);
        return res;
    }
};</span>


你可能感兴趣的:(leetcode-Balanced Binary Tree)