int recursion(struct TreeNode* root, bool* flag){ if(!root) 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; }