zoukankan      html  css  js  c++  java
  • LC.110. Balanced Binary Tree

    https://leetcode.com/problems/balanced-binary-tree/description/
    Given a binary tree, determine if it is height-balanced.

    For this problem, a height-balanced binary tree is defined as:

    a binary tree in which the depth of the two subtrees of every node never differ by more than 1.


    bal. binary tree:

    3 3: max(1,2) + 1 = 3
    /
    9 20 9: 1 20:2 (max 1, 1) + 1 = 2
    /
    15 7 both 1

    not bal. binary tree:
    3 3-1 > 1 not bal. return -1
    /
    9 20 9: 1 ; 20: max(1,2) + 1 = 3
    /
    15 7 15: 1 7: 2

    9 9: 1


     1 public boolean isBalanced(TreeNode root) {
     2         if (root == null) return true;
     3         return getHeight(root) != -1 ;
     4     }
     5     //get current node height: -1 代表不平衡
     6     private int getHeight(TreeNode root){
     7         //base case: 空叶子高度 = 0 非空叶子高度 = 1
     8         if (root == null) return 0 ;
     9         // post order
    10         int l = getHeight(root.left) ;
    11         int r = getHeight(root.right) ;
    12         int diff = Math.abs(l-r) ;
    13         //如果当前节点下左右子树 不平衡 或者 高度 差值 》 1 则 当前节点返回 不平衡 -1
    14         if (l == -1 || r == -1 || diff > 1) {
    15             return - 1 ;
    16         }
    17         //如果平衡,返回 正常高度
    18         return Math.max(l,r) + 1 ;
    19     }


  • 相关阅读:
    使用jackson美化输出json/xml
    mybatis不报错,但是查询结果为0
    @Valid基于hibernate
    spring 整合 mybatis (不含物理分页)
    mybatis insert 自动生成key
    mybatis 配置延迟加载 和 缓存
    mybaits foreach
    2015-08-13T17:39:15
    Introduction
    mybatis 存储过程调用
  • 原文地址:https://www.cnblogs.com/davidnyc/p/8476854.html
Copyright © 2011-2022 走看看