输入一个二叉树判断它是否是平衡二叉树
时间: 2023-05-21 22:02:31 浏览: 132
判断二叉树是否是平衡二叉树
4星 · 用户满意度95%
可以使用递归的方法来判断一个二叉树是否是平衡二叉树。首先判断左子树是否是平衡二叉树,再判断右子树是否是平衡二叉树,最后判断左右子树的高度差是否小于等于1。如果满足以上条件,则该二叉树是平衡二叉树。以下是示例代码:
```
bool isBalanced(TreeNode* root) {
if (root == nullptr) {
return true;
}
int leftHeight = getHeight(root->left);
int rightHeight = getHeight(root->right);
if (abs(leftHeight - rightHeight) > 1) {
return false;
}
return isBalanced(root->left) && isBalanced(root->right);
}
int getHeight(TreeNode* root) {
if (root == nullptr) {
return 0;
}
return max(getHeight(root->left), getHeight(root->right)) + 1;
}
```
阅读全文