class Solution {
public:
bool isBalanced(TreeNode* root) {
//递归检查树的平衡性
if(!root) return true;
int dep1 = depth(root->left, 0);
int dep2 = depth(root->right, 0);
if(abs(dep1 - dep2) > 1) return false;
return isBalanced(root->left) && isBalanced(root->right);
}
int depth(TreeNode* root, int dep){
//求树的高度
if(!root)
return dep;
int leftdep = depth(root->left, dep + 1);
int rightdep = depth(root-> right, dep +1);
return max(leftdep, rightdep);
}
};