zoukankan      html  css  js  c++  java
  • [Leetcode]110. Balanced Binary Tree

    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.

    思路:求每个节点左右子树的高度,如果  H左树 - H 右树大于 1 或者 H 右树 - H 左树大于 1 ,就返回false ,为此,我另写了个求高度的辅助函数。这么做

    我觉得效率有点低。。。但是第一反应就想到的这个。回头看看网上别的大神有没更高效的方法。。

     1 /**
     2  * Definition for a binary tree node.
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 class Solution {
    11     public boolean isBalanced(TreeNode root) {
    12         int lHeight,rHeight;
    13         if (root==null)
    14             return true;                    //如果一开始传进来一个空引用,则返回true
    15         else{
    16             lHeight = getHeight(root.left);        //求左树高和右树高
    17             rHeight = getHeight(root.right);
    18             if (lHeight-rHeight>1||rHeight-lHeight>1)
    19                 return false;                              //不满足平衡条件,返回false;
    20             else{
    21                 //满足的话,递归判断左右孩子是否满足条件。左右孩子也可能不满足条件
    22                 //,所以要递归判断。想象下人字形树。
    23                 return isBalanced(root.left)&&isBalanced(root.right);
    24             }
    25         }
    26     }
    27     public int getHeight(TreeNode root){
    28         int lHeight=0,rHeight=0;
    29         if (root==null)
    30             return 0;
    31         else {
    32             lHeight = getHeight(root.left);
    33             rHeight = getHeight(root.right);
    34         }
    35         if (lHeight<rHeight)
    36             lHeight = rHeight;
    37         return lHeight+1;
    38     }
    39 }
  • 相关阅读:
    React 不暴露webpack配置的情况下,修改webpack配置
    Array的一些方法
    ES 6 学习
    位运算解决“一个数组中,只有一个数字出现n次,其他数字出现k次”问题
    句子反转——牛客刷题(java)
    数串——牛客刷题
    链表分割——牛客剑指offer
    合并两个排序链表——牛客offer
    复杂链表的复制——牛客offer
    两个链表的第一个公共结点——牛客offer
  • 原文地址:https://www.cnblogs.com/David-Lin/p/7716354.html
Copyright © 2011-2022 走看看