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

    * @Description 平衡二叉树
    * @问题: 输入一棵二叉树,判断该二叉树是否是平衡二叉树
    * @思路: 改为从下往上遍历,如果子树是平衡二叉树,则返回子树的高度;
    * 如果发现子树不是平衡二叉树,则直接停止遍历
    package LG.nowcoder;
    
    /**
     * @Author liguo
     * @Description 平衡二叉树
     * @问题: 输入一棵二叉树,判断该二叉树是否是平衡二叉树
     * @思路: 改为从下往上遍历,如果子树是平衡二叉树,则返回子树的高度;
     * 如果发现子树不是平衡二叉树,则直接停止遍历
     * 1:
     * @Data 2018-08-17 15:53
     */
    public class Solution16 {
        public boolean IsBalanced_Solution(TreeNode root) {
            return getDepth(root) != -1;
        }
    
        private int getDepth(TreeNode root) {
            if (root == null) return 0;
            int left = getDepth(root.left);
            if (left == -1) return -1;
            int right = getDepth(root.right);
            if (right == -1) return -1;
            return Math.abs(left - right) > 1 ? -1 : 1 + Math.max(left, right);
        }
    }

  • 相关阅读:
    poj 2481
    poj 3928 Ping pong
    再见oi
    NOIP 2014 解方程
    poj1836:Alignment
    poj2479:Maximum sum
    tyvj1510:专家复仇
    tyvj:P1467 通向聚会的道路
    tyvj1176: 火焰巨魔的惆怅
    tyvj1326:剑人合一
  • 原文地址:https://www.cnblogs.com/liguo-wang/p/9493945.html
Copyright © 2011-2022 走看看