美文网首页
【1错-1】是否平衡二叉树

【1错-1】是否平衡二叉树

作者: 7ccc099f4608 | 来源:发表于2019-01-27 20:45 被阅读1次

https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

日期 是否一次通过 comment
2019-01-27 20:20 N 1. 对maxDepth理解不深:maxDepth是不停的分治,判断左右子树最大深度(postOrder),而不是累加;2. maxDepth在本题中复杂度太高,相当于每个子树都得算独立的深度,不科学

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

1. 原版maxDepth

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        if(root == null) {
            return true;
        }
         
       if(Math.abs(helper(root.left) - helper(root.right)) > 1) {
           return false;
       }
       return true;
    }
     
    private int helper(TreeNode root) {
        if(root == null) {
            return 0;
        }
         
        return Math.max(helper(root.left), helper(root.right)) + 1;
    }
}

2. 调整后的maxDepth

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        return helper(root) != -1;
    }
    
    private int helper(TreeNode root) {
        if(root == null) {
            return 0;
        }
        int leftDpt = helper(root.left);
        int rightDpt = helper(root.right);
        if(leftDpt == -1 || rightDpt == -1 || Math.abs(leftDpt - rightDpt) > 1) {
            return -1;
        }
        
        return Math.max(leftDpt, rightDpt) + 1;
    }
}

相关文章

  • 【1错-1】是否平衡二叉树

    https://www.nowcoder.com/practice/8b3b95850edb4115918eceb...

  • 每周 ARTS 第 18 期

    1. Algorithm 110. 平衡二叉树(简单) 描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。本题...

  • 1 二叉树的最近公共祖先(leetcode 236) 2 判断是否为平衡二叉树 3 判断二叉树是否为满二叉树 4 ...

  • 39. 平衡二叉树

    题目描述 判断是否平衡二叉树 - >左右子树高度差不超过 1。 代码实现

  • 【剑指Offer】039——平衡二叉树(树)

    题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树 思路 平衡二叉树:某节点的左右子树深度差绝对值不超过1。利用递...

  • 判断平衡二叉树——Python

    给定一棵二叉树,判断它是否为平衡二叉树。 平衡二叉树的定义是:如果某二叉树中任意节点的左右子树的深度相差不超过1,...

  • 判断是否是平衡二叉树

    题目:输入一个二叉树,判断其是否是平衡二叉树。平衡二叉树的定义是任何节点的左右子树高度差都不超过1的二叉树。 解法...

  • 平衡二叉树

    题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:平衡二叉树的特点是左子树与右子树的高度相差不大于1,所...

  • [LeetCode OJ]- Balanced Binary

    题目要求:判断一颗二叉树是否为高度平衡的二叉树。 平衡二叉树:左右子树的高度差值不超过1 思路:这道题一看到的时候...

  • 110. Balance Binary Tree

    题目 给定一柯二叉树,判断是否高度平衡。 解析 一棵高度平衡的二叉树,其每个节点的左右子树高度差小于等于1。要判断...

网友评论

      本文标题:【1错-1】是否平衡二叉树

      本文链接:https://www.haomeiwen.com/subject/uepnjqtx.html