zoukankan      html  css  js  c++  java
  • lintcode : 平衡二叉树

    题目

     平衡二叉树

    给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 

    样例

    给出二叉树 A={3,9,20,#,#,15,7}, B={3,#,20,15,7}

    A)  3            B)    3 
       /                   
      9  20                 20
        /                  / 
       15   7              15  7

    二叉树A是高度平衡的二叉树,但是B不是

    解题

    递归求高度

    判断左右孩子高度之差是小于等于1,这里还是需要递归的

    /**
     * Definition of TreeNode:
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left, right;
     *     public TreeNode(int val) {
     *         this.val = val;
     *         this.left = this.right = null;
     *     }
     * }
     */
    public class Solution {
        /**
         * @param root: The root of binary tree.
         * @return: True if this Binary tree is Balanced, or false.
         */
        public boolean isBalanced(TreeNode root) {
            // write your code here
            if(root == null)
                return true;
            int lft = depth(root.left);
            int rit = depth(root.right);
            if(Math.abs(lft-rit)<=1){
                return isBalanced(root.left)&&isBalanced(root.right);
            }
            else
                return false;
            
        }
        public int depth(TreeNode root){
            if(root ==null)
                return 0;
            if(root.left==null && root.right ==null)
                return 1;
            int lft = depth(root.left);
            int rit = depth(root.right);
            return Math.max(lft,rit) + 1;
        }
    }
    Java Code
  • 相关阅读:
    Oracle学习系列7
    oracle 体系结构
    数据库设计三大范式
    Oracle学习系列6
    Oracle学习系列5
    Unity3D for Android 纹理压缩支持
    Unity项目UI图片压缩格式(UGUI)
    [Unity3D]关于U3D贴图格式压缩
    unity 联机调试(android ios)
    UGUI 文字效果实现(ShadowGradientOutline)
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5104005.html
Copyright © 2011-2022 走看看