• 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
  • 相关阅读:
    ngnix+uwsgi+django 部署mezzanine
    shell三剑客之find
    Flask常见面试问题
    redis宕机如何解决?如果是项目上线的宕机呢?
    UiPath,容智Ibot在线接单,有需求的欢迎过来
    CORS和CSRF
    JWT黑名单和白名单
    Django项目常见面试问题
    降低Redis内存占用
    Redis-缓存有效期与淘汰策略
  • 原文地址:https://www.cnblogs.com/theskulls/p/5104005.html
Copyright © 2020-2023  润新知