• 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.

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public boolean isBalanced(TreeNode node) {
            if(node == null){
                return true;
            }
    
            int leftDeepth = calDeepth(node.left);
            int rightDeepth = calDeepth(node.right);
    
            if(Math.abs(leftDeepth-rightDeepth)>1){
                return false;
            }
    
            return isBalanced(node.left)&&isBalanced(node.right);
        }
        
        // 获取二叉树的深度
        private int calDeepth(TreeNode node){
            if(node==null){
                return 0;
            }
            int leftDeepth = calDeepth(node.left);
            int rightDeepth = calDeepth(node.right);
    
            return 1+(leftDeepth > rightDeepth ? leftDeepth : rightDeepth);
        }
        
    }
    

      

    大道,在太极之上而不为高;在六极之下而不为深;先天地而不为久;长于上古而不为老
  • 相关阅读:
    洛谷P1501 动态树(LCT)
    Beijing Institute of Technology 2019.6 Monthly Contest (For grade 2018)
    [BJOI2018]求和
    [JSOI2015]最小表示
    简单题
    [Ynoi2016]掉进兔子洞
    乘积
    飞扬的小鸟
    [CTSC2008]网络管理
    Sequence
  • 原文地址:https://www.cnblogs.com/GodBug/p/7392502.html
Copyright © 2020-2023  润新知