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;
    }
};
相关推荐
未若君雅裁3 小时前
LeetCode 18 - 四数之和 详解笔记
java·数据结构·笔记·算法·leetcode
2501_941111463 小时前
高性能计算集群部署
开发语言·c++·算法
AIpanda8883 小时前
AI销冠系统和AI提效软件系统是什么?主要特点和应用场景有哪些?
算法
普通网友4 小时前
模板编译期机器学习
开发语言·c++·算法
普通网友4 小时前
C++与机器学习框架
开发语言·c++·算法
普通网友4 小时前
C++安全编程指南
开发语言·c++·算法
鱼骨不是鱼翅4 小时前
力扣hot100----1day
python·算法·leetcode·职场和发展
2501_941235734 小时前
C++中的装饰器模式变体
开发语言·c++·算法
2501_941111254 小时前
基于C++的爬虫框架
开发语言·c++·算法
小欣加油4 小时前
leetcode 429 N叉树的层序遍历
数据结构·c++·算法·leetcode·职场和发展