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;
    }
};
相关推荐
hweiyu002 分钟前
数据结构:数组
数据结构·算法
无限进步_13 分钟前
C语言单向链表实现详解:从基础操作到完整测试
c语言·开发语言·数据结构·c++·算法·链表·visual studio
初夏睡觉14 分钟前
循环比赛日程表 题解
数据结构·c++·算法
派大星爱吃鱼43 分钟前
素数检验方法
算法
Greedy Alg1 小时前
LeetCode 72. 编辑距离(中等)
算法
xinxingrs1 小时前
贪心算法、动态规划以及相关应用(python)
笔记·python·学习·算法·贪心算法·动态规划
秋邱1 小时前
驾驭数据洪流:Python如何赋能您的数据思维与决策飞跃
jvm·算法·云原生·oracle·eureka·数据分析·推荐算法
侯小啾2 小时前
【23】C语言 左移(<<) 与 右移(>>) 位运算符在处理像素中的应用
c语言·算法·位运算·右移·左移
搂鱼1145142 小时前
(dp 优化)洛谷 P14460 寻雾启示 题解
算法·图论
_OP_CHEN2 小时前
算法基础篇:(十一)贪心算法拓展之区间问题:从重叠到覆盖的最优解艺术
算法·贪心算法