力扣110. 平衡二叉树

在这里插入图片描述

思路:与二叉树最大高度类似,但是这里需要返回 -1 的高度来标识不是平衡二叉树,判断左右子树的高度相差大于1则不平衡,否则就是平衡。


class Solution {
    public boolean isBalanced(TreeNode root) {
        int ans = func(root);
        if(ans > -1) {
            return true;
        }
        return false;
    }

    public int func(TreeNode root) {
        if(root == null) return 0;
         
        //如果不是平衡二叉树,返回-1作为信号
        int leftNum = func(root.left);
        if(leftNum == -1) return -1;

        int rightNum = func(root.right);
        if(rightNum == -1) return -1;
        //左右相差大于1则不是平衡二叉树
        if(Math.abs(leftNum-rightNum) > 1) {
            return -1;
        }else {
            return 1+ Math.max(leftNum, rightNum); //子树最大高度
        }
    }  
}

相关推荐

  1. 110:平衡

    2024-04-23 01:24:04       33 阅读
  2. 0110——平衡

    2024-04-23 01:24:04       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 01:24:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 01:24:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 01:24:04       82 阅读
  4. Python语言-面向对象

    2024-04-23 01:24:04       91 阅读

热门阅读

  1. 前端CSS基础2(CSS基本选择器和复合选择器)

    2024-04-23 01:24:04       25 阅读
  2. 面试题

    面试题

    2024-04-23 01:24:04      36 阅读
  3. /bin/sh: 1: arm-linux-g++: not found

    2024-04-23 01:24:04       29 阅读
  4. 【Vue3源码学习】— CH3.2 VNode解析(上)

    2024-04-23 01:24:04       36 阅读
  5. leetcode 23

    2024-04-23 01:24:04       38 阅读
  6. lazarus-ide简介

    2024-04-23 01:24:04       35 阅读
  7. 安卓功耗分析

    2024-04-23 01:24:04       35 阅读
  8. Android开发——ListView

    2024-04-23 01:24:04       35 阅读
  9. mybatis和mybatis-plus的区别

    2024-04-23 01:24:04       38 阅读
  10. nginx根据二级目录转发服务以及带/和不带/的区别

    2024-04-23 01:24:04       41 阅读
  11. Rust 模式匹配中的& 和 ref

    2024-04-23 01:24:04       39 阅读
  12. RedisHttpSession反序列化UID问题跟踪

    2024-04-23 01:24:04       31 阅读
  13. 【Git】git revert 命令(撤销 commit 改动)

    2024-04-23 01:24:04       45 阅读