LeetCode | 110. 平衡二叉树
OJ链接文章来源:https://www.toymoban.com/news/detail-762434.html
文章来源地址https://www.toymoban.com/news/detail-762434.html
- 首先计算出二叉树的高度
- 然后计算当前节点的左右子树的高度,然后判断当前节点的左右子树高度差是否超过 1,最后递归地检查左右子树是否也是平衡的。
//计算二叉树的高度
int height(struct TreeNode* root)
{
if(root == NULL)
return NULL;
int left = height(root->left);
int right = height(root->right);
return left > right ? left + 1 : right + 1;
}
//判断是否是平衡二叉树
bool isBalanced(struct TreeNode* root) {
if(root == NULL)
return true;
//分别求左右子树的高度
int left = height(root->left);
int right = height(root->right);
//判断当前节点是否平衡
if(abs(left - right) > 1)
return false;
//递归检查左右子树是否平衡
return isBalanced(root->left)
&& isBalanced(root->right);
}
到了这里,关于LeetCode | 110. 平衡二叉树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!