【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 小时前
☁️ 自动化交付:CI/CD 流程与云端部署
运维·前端·程序人生·ci/cd·职场和发展·node.js·自动化
爱编程的小吴16 小时前
【力扣练习题】热题100道【哈希】189. 轮转数组
算法·leetcode·哈希算法
wjykp16 小时前
105~108SVMf
算法
leoufung16 小时前
LeetCode 322. Coin Change:从错误思路到正确一维 DP
算法·leetcode·职场和发展
旧梦吟17 小时前
脚本网页 双子星棋
算法·flask·游戏引擎·css3·html5
ullio17 小时前
arc205d - Non-Ancestor Matching
算法
wa的一声哭了17 小时前
内积空间 正交与正交系
java·c++·线性代数·算法·矩阵·eclipse·云计算
SWAGGY..17 小时前
数据结构学习篇(8)---二叉树
数据结构·学习·算法
星轨初途17 小时前
牛客小白月赛126
开发语言·c++·经验分享·笔记·算法
leoufung17 小时前
动态规划DP 自我提问模板
算法·动态规划