这里我们可以用递归函数专门用来求子树的高度,再用一个bool树来求进行递归如果子树的高度查大于1,就把他变为false,最后递归每次返回子树的高度为max(lh,rh)+1;
class Solution {
public:
bool res=true;
bool isBalanced(TreeNode* root) {
dfs(root);
return res;
}
int dfs(TreeNode*root){
if(!root)return 0;
int lh=dfs(root->left),rh=dfs(root->right);
if(abs(lh-rh)>1)res=false;
return max(rh,lh)+1;}
};