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;
    }
};
相关推荐
练习时长一年13 小时前
LeetCode热题100(分割等和子集)
算法·leetcode·职场和发展
七号驿栈13 小时前
07_汽车信息安全算法在线验证工具(测试报告)
算法
啦哈拉哈14 小时前
【Python】知识点零碎学习4
python·学习·算法
爱喝可乐的老王14 小时前
线性回归模型案例:广告投放效果预测
算法·回归·线性回归
程序员-King.14 小时前
day151—双端队列—找树左下角的值(LeetCode-513)
算法·leetcode·二叉树·双端队列·队列
苦藤新鸡14 小时前
15 .数组右移动k个单位
算法·leetcode·动态规划·力扣
狐5715 小时前
2026-01-19-牛客每日一题-阅读理解
笔记·算法·牛客
橘颂TA15 小时前
【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域
算法·leetcode·职场和发展·结构与算法
一分之二~15 小时前
回溯算法--解数独
开发语言·数据结构·c++·算法·leetcode