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;
    }
};
相关推荐
夜思红尘2 小时前
算法--双指针
python·算法·剪枝
散峰而望2 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
CoderCodingNo2 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……2 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
前端小L2 小时前
双指针专题(三):去重的艺术——「三数之和」
javascript·算法·双指针与滑动窗口
智者知已应修善业4 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
LYFlied4 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
多米Domi0114 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表
历程里程碑4 小时前
滑动窗口最大值:单调队列高效解法
数据结构·算法·leetcode
課代表5 小时前
从初等数学到高等数学
算法·微积分·函数·极限·导数·积分·方程