LeetCode110:平衡二叉树

题目描述

给定一个二叉树,判断它是否是 平衡二叉树


解题思想

使用递归依次计算左子树的高度和右子树的高度

代码

cpp 复制代码
class Solution {
public:
    int height(TreeNode* node) {
        if (node == nullptr) return 0;
        
        int leftT = height(node->left);
        if (leftT == -1) return -1;
        int rightT = height(node->right);
        if (rightT == -1) return -1;
        
        if (abs(leftT - rightT) > 1) 
            return -1;

        else
            return 1 + max(leftT, rightT);
    }


    bool isBalanced(TreeNode* root) {
        return height(root) == -1 ? false : true;
    }
};
相关推荐
mit6.82415 分钟前
presum|
算法
不穿格子的程序员15 分钟前
从零开始写算法——链表篇2:从“回文”到“环形”——链表双指针技巧的深度解析
数据结构·算法·链表·回文链表·环形链表
guygg8832 分钟前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab
诺....1 小时前
C语言不确定循环会影响输入输出缓冲区的刷新
c语言·数据结构·算法
Yuroo zhou1 小时前
采矿定向技术演进:MEMS定向短节的崛起
算法·硬件架构·硬件工程·石油·钻井
EriccoShaanxi1 小时前
穿越高温地层:加速度计如何成为石油钻井的核心感官
大数据·算法
Tisfy1 小时前
LeetCode 3531.统计被覆盖的建筑:最大最小值
算法·leetcode·题解·桶排序
京东零售技术1 小时前
SIGIR 2025 | 基于图同构网络的群体建模在点击率预测中的应用
算法