对二叉树深度中的递归方程增加一条语句判断maxleft-maxright是否符合平衡二叉树即可;
int find(TreeNode* root, bool &isbalanced)
{
int maxleft = 1, maxright = 1;
if (root == NULL) return 0;
if (root->left != NULL) maxleft = find(root->left,isbalanced)+1;
if (root->right != NULL)maxright = find(root->right,isbalanced)+1;
if(abs(maxleft-maxright)>1) isbalanced=false;
return max(maxleft, maxright);
}
bool IsBalanced_Solution(TreeNode* pRoot) {
bool isbalanced=true;
if(pRoot==NULL) return true;
find(pRoot,isbalanced);
return isbalanced;
}