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

    求一个二叉树是否是平衡二叉树。平衡二叉树是每个节点的左子树和右子树的深度的绝对值之差不超过1的二叉树。

    这道题可以借鉴前几天做过的求二叉树的深度的题,递归调用,每次记录左子树是否为平衡二叉树,右子树是否为平衡二叉树,左右子树是否平衡。 

    如果不平衡,maxDepth返回-1

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public boolean isBalanced(TreeNode root) {
             return maxDepth(root) != -1;
        }
        
        private int maxDepth(TreeNode root) {
             if (root == null) {
                 return 0;
             }
             
            int left = maxDepth(root.left);
            int right = maxDepth(root.right);
            if (left == -1 || right == -1 || Math.abs(left - right) > 1){
                return -1;
            }else {
                return Math.max(left, right) + 1;
            }
            
        }
    }
  • 相关阅读:
    正交实验
    边界值
    等价类划分概述
    测试用例编写
    java基础复习(四)
    easyui datagrid 搜索功能
    一段代码把网站变成灰白色
    PHP 获取二维数组中某个key的集合
    如何使用Mobile_Detect来判断访问网站的设备:安卓,平板,电脑
    easyui validatebox 验证类型
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5770440.html
Copyright © 2020-2023  润新知