int recursion(struct TreeNode* root, bool* flag){ if (!root || *flag=false) return 0; int left=recursion(root->left,flag); int right=recursion(root->right,flag); if (abs(left-right)>1) *flag=false; return (left>right)?left+1 :right+1; } bool isBalanced(struct TreeNode* root){ bool flag=true; recursion(root, &flag); return flag; }