输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
思路:写一个辅助函数,求树的最大深度。递归遍历每一个节点,判断左右子树的深度差是否大于1
int high(TreeNode* root){
if(!root)return 0;
return max(high(root->left),high(root->right))+1;
}
bool isBalanced(TreeNode* root) {
if(!root)return true;
if(abs(high(root->left)-high(root->right))>1)return false;
return isBalanced(root->left)&&isBalanced(root->right);
}