思路:利用上一题中求树的最大深度
class Solution {
bool res = true;
int dfs(TreeNode *root)//计算左右子树的最大深度
{
if(!root) return 0;
int left = dfs(root->left);
int right = dfs(root->right);
if(abs(left -right) > 1) //如果左右子树深度相差超过2直接对res赋值并退出
{
res = false;
return 0;
}
return max(left, right)+1;
}
public:
bool isBalanced(TreeNode* root) {
dfs(root);
return res;
}
};