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;
    }
};
相关推荐
C雨后彩虹11 分钟前
无向图染色
java·数据结构·算法·华为·面试
坚持就完事了18 分钟前
扫描线算法
算法
鱼跃鹰飞21 分钟前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
程序员-King.22 分钟前
二分查找——算法总结与教学指南
数据结构·算法
Zevalin爱灰灰23 分钟前
现代控制理论——第三章 线性控制系统的能控性和能观性
线性代数·算法·现代控制
kklovecode25 分钟前
C语言之头文件,宏和条件编译
c语言·开发语言·算法
Xの哲學36 分钟前
Linux自旋锁深度解析: 从设计思想到实战应用
linux·服务器·网络·数据结构·算法
晚风吹长发40 分钟前
深入理解Linux中用户缓冲区,文件系统及inode
linux·运维·算法·链接·缓冲区·inode
cwplh1 小时前
DP 优化一:单调队列优化 DP
算法
Halo_tjn1 小时前
基于Java的相关知识点
java·开发语言·windows·python·算法