zoukankan      html  css  js  c++  java
  • 刷题94—树(一)

    141.检查平衡性

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/check-balance-lcci
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

    实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。


    示例 1:
    给定二叉树 [3,9,20,null,null,15,7]
    3
    /
    9 20
    /
    15 7
    返回 true 。
    示例 2:
    给定二叉树 [1,2,2,3,3,null,null,4,4]
    1
    /
    2 2
    /
    3 3
    /
    4 4
    返回 false 。

    题目分析

    1. 通过递归判断每个节点的左子树和右子树高度差是否大于1,若是大于1,则不是平衡二叉树;
    2. 判断是否存在根节点,若是不存在,return 0;
    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @return {boolean}
     */
    var isBalanced = function(root) {
        let res = true;
        function check(root){
            if(!root) return 0;
            if(res === false) return 0;
            let left = check(root.left);
            let right = check(root.right);
            if(Math.abs(left-right) > 1) res = false;
            return Math.max(left,right)+1;
        }
        check(root);
        return res;
    };
    

      

  • 相关阅读:
    复杂数据权限设计方案
    HTTP 错误 500.24
    C# 树形结构tree拼接
    MVC View返回list列表
    springboot使用validation 插件做数据校验
    java导出excel,多表头合并
    微信小程序表单验证
    springboot跑定时任务
    Springboot 上传excel并解析文件内容
    jmeter基本使用
  • 原文地址:https://www.cnblogs.com/liu-xin1995/p/12828800.html
Copyright © 2011-2022 走看看