题目描述
思路分析
二叉树+递归
实际上因为二叉树的很多定义都是递归式的(比如这道题中的平衡二叉树),所以往往递归来做。
代码实现
class Solution {
public:
bool ans=true;
bool IsBalanced_Solution(TreeNode* root) {
dfs(root);
return ans;
}
int dfs(TreeNode* root){
if(!root) return 0;
int l=dfs(root->left),r=dfs(root->right);
if(abs(l-r)>1) ans=false;
return max(l,r)+1;
}
};