思路
核心思想就是在dfs的过程中维护一个全局变量来判断是否为平衡二叉树
class Solution {
private:
bool balanced = true;
int dfs(TreeNode* root) {
if (root == nullptr) return 0;
int left = dfs(root->left);
int right = dfs(root->right);
if (abs(right - left) > 1) balanced = false;
return 1 + max(left, right);
}
public:
bool isBalanced(TreeNode* root) {
if (root == nullptr) return true;
dfs(root);
return balanced;
}
};