【LeetCode-简单题】110. 平衡二叉树

文章目录

题目

方法一:后序递归

递归遍历的同时判断是否是平衡二叉树,如果不是,就置为-1,如果是 就正常做递归求最大深度

参考图解网址
判断平衡二叉树

java 复制代码
class Solution {
    public boolean isBalanced(TreeNode root) {
         return  dfs(root) !=-1;
    }
    public int dfs(TreeNode root){
        if(root == null) return 0;
        
        int left = dfs(root.left);
        if(left==-1) return -1;// 左子树高度差大于1,return -1表示已经不是平衡树了  就无需去递归右子树了
        int right = dfs(root.right);
        if(right==-1) return -1;// 右子树高度差大于1,return -1表示已经不是平衡树了

        if(Math.abs(left-right)>1) return -1;  // 左右子树高度差大于1,return -1表示已经不是平衡树了
        else return Math.max(left,right)+1;
    }
}
相关推荐
曦樂~16 小时前
【STL】内部使用哈希表的unordered_map/unordered_set
数据结构·算法·哈希算法
Lisonseekpan17 小时前
雪花算法(Snowflake)技术详解与实战应用
java·分布式·后端·算法
软件算法开发17 小时前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm
2401_8772742417 小时前
太原理工大学2025数据结构-栈和队列
数据结构·c++·算法
资深web全栈开发18 小时前
LeetCode 1262. 可被三整除的最大和 - 解题思路与代码
算法·leetcode·职场和发展
保持低旋律节奏18 小时前
算法——冗余!哈希表、vector、string适配器的混合使用
数据结构·算法·散列表
weixin_4577600019 小时前
OpenCV 图像处理基础算法详解(一)
图像处理·opencv·算法
做怪小疯子19 小时前
LeetCode 热题 100——链表——相交链表
算法·leetcode·链表
while(努力):进步20 小时前
5G与物联网:连接万物的数字化未来
leetcode
立志成为大牛的小牛20 小时前
数据结构——五十一、散列表的基本概念(王道408)
开发语言·数据结构·学习·程序人生·算法·散列表