class Solution {
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(helper(pRoot) == -1) return false;
        else return true;
    }
    int helper(TreeNode* root){
        if(!root) return 0;
        int left = helper(root->left);
        if(left == -1) return -1;
        int right = helper(root->right);
        if(right == -1) return -1;
        int diff = abs(left - right);
        if(diff > 1) return -1;
        return 1 + max(helper(root->left), helper(root->right));
    }
};
https://www.cnblogs.com/grandyang/p/4045660.html