LeetCode | 110. 平衡二叉树

简介: LeetCode | 110. 平衡二叉树

LeetCode | 110. 平衡二叉树

OJ链接

  • 首先计算出二叉树的高度
  • 然后计算当前节点的左右子树的高度,然后判断当前节点的左右子树高度差是否超过 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);
}
相关文章
|
2月前
leetcode代码记录(平衡二叉树
leetcode代码记录(平衡二叉树
23 0
|
1月前
|
SQL 算法 数据挖掘
力扣110:平衡二叉树
力扣110:平衡二叉树
|
8月前
|
算法
【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树
【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树
35 0
|
2月前
|
Java C++ Python
leetcode-110:平衡二叉树
leetcode-110:平衡二叉树
30 0
LeetCode刷题Day14——二叉树(完全二叉树、平衡二叉树、二叉树路径、左叶子之和)
一、完全二叉树的节点个数 题目链接:222. 完全二叉树的节点个数
|
8月前
|
算法
代码随想录算法训练营第十七天 | LeetCode 110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和
代码随想录算法训练营第十七天 | LeetCode 110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和
33 0
|
9月前
【Leetcode -110.平衡二叉树 -226.翻转二叉树】
【Leetcode -110.平衡二叉树 -226.翻转二叉树】
19 0
Leetcode 110 平衡二叉树
Leetcode 110 平衡二叉树
149 0
|
Java
力扣110. 平衡二叉树Java
力扣110. 平衡二叉树Java
60 0
|
算法
LeetCode 周赛 340,质数 / 前缀和 / 极大化最小值 / 最短路 / 平衡二叉树
今天讲 LeetCode 单周赛第 340 场,今天状态不好,掉了一波大分。
72 0