class Solution {
  public:
    bool fl = true;
    int dfs(TreeNode* root) {
        if (root == nullptr)return 0;
        int le = dfs(root->left), ri = dfs(root->right);
        if (abs(le - ri) > 1)fl = false;
        return max(le, ri) + 1;
    }
    bool IsBalanced_Solution(TreeNode* pRoot) {
        dfs(pRoot);
        return fl;
    }
};