zoukankan      html  css  js  c++  java
  • 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);
        }
        
    }
    

      

    大道,在太极之上而不为高;在六极之下而不为深;先天地而不为久;长于上古而不为老
  • 相关阅读:
    python 练习洗牌
    python 生成二维码
    转载 HTTP协议
    分别使用python和java练习冒泡排序
    python-字符串
    [转]三层架构与MVC之间的区别
    [转]JAVA异常
    [转]JavaEE开发基础
    [转]JAVA对象容器
    数据库操作实例
  • 原文地址:https://www.cnblogs.com/GodBug/p/7392502.html
Copyright © 2011-2022 走看看