zoukankan      html  css  js  c++  java
  • 110.Balanced Binary Tree 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.

    很早以前做的了  准备把这些笔记都转移到博客园上   其一加深理解 其二再打一遍也有好处 

    这题大意  给出一个二叉树 判断这个二叉树 是否平衡 平衡的条件为 任意一个节点的左子树和右子树高度相差不超过一

    思路很简单  首先要有一个得出树高度的函数

    节点为空 树高度为零  否则树的高度为左子树的高度和右子树的高度中最大的那个加一,加一的意思就是加上自身这个节点的高度

    判断左子树和右子树高度是否相差大于一  如果大于一 返回一个标记数  可以用-1标记

    直接码代码

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public boolean isBalanced(TreeNode root) {
           return height(root)!=-1;
        }
        public int height(TreeNode root){
            if(root==null)
            return 0;
            int left=height(root.left);
            int right=height(root.right);
            if(left==-1||right==-1||Math.abs(left-right)>1)
            return -1;
            return Math.max(left,right)+1;
        }
    }
    

      一次过了 

    看看 detail

    2ms  感觉有点长了 我觉得应该是0ms级别的

    惯例  学习别人的优秀解法  看看discuss 里最受欢迎的那个

    public class Solution {
        public boolean isBalanced(TreeNode root) {
            if(null == root) {
                return true;
            }
            
            return Math.abs(height(root.left) - height(root.right)) < 2 && isBalanced(root.left) && isBalanced(root.right);
        }
        
        public int height(TreeNode root) {
            if(null == root) {
                return 0;
            }
            
            return 1 + Math.max(height(root.left), height(root.right));
        }
    }
    

     恩  其实和我的思路一样 只是写法不同  ~

  • 相关阅读:
    Scanner类
    16 String类
    15_面向对象_01
    14_面向对象_01_2 完整格式
    14_面向对象_01_1 成员变量 成员方法
    13_面向对象辅助看懂实例
    面向对象的基本概念
    Servlet_03 进阶随笔 两种域的运用调用方式
    Servlet_03 资源跳转 关键字
    Servlet_02 资源跳转
  • 原文地址:https://www.cnblogs.com/Mrjie/p/6009742.html
Copyright © 2011-2022 走看看