Balanced Binary Tree

原创 2015年07月10日 09:02:46

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.

Show Tags

Have you met this question in a real interview?

思路:题意是要判断一棵树是否是二叉平衡树,即任意一节点的左右子树的高度差不得超过1,空树算是一种特殊的平衡二叉树。明显还是需要DFS来后序遍历,只要有节点的左右子树高度相差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) {
        if(root==null) return true;
        
        if(getDeep(root)==-1){
            return false;
        }
        
        return true;
    }
    
    public int getDeep(TreeNode root){
        if(root==null) return 0;
        
        int left = getDeep(root.left);
        int right = getDeep(root.right);
        
        if(left==-1 || right==-1){
            return -1;
        }
        
        if(Math.abs(left-right)>1){
            return -1;
        }
        
        return Math.max(left,right)+1;
    }
}


leetcode的题目:Balanced Binary Tree

  • 2014年10月14日 09:34
  • 145KB
  • 下载

【LeetCode-面试算法经典-Java实现】【110-Balanced Binary Tree(平衡二叉树)】

【110-Balanced Binary Tree(平衡二叉树)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree, determin...

110. Balanced Binary Tree [easy] (Python)

题目链接 https://leetcode.com/problems/balanced-binary-tree/ 题目原文 Given a binary tree, determine...

[LeetCode-7] Balanced Binary Tree

Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bina...
  • sbitswc
  • sbitswc
  • 2014年05月21日 07:03
  • 777

lintcode balanced-binary-tree 平衡二叉树

问题描述平衡二叉树笔记这个题是没想出来,也没想起来了,最后参考了九章算法的解法。代码/** * Definition of TreeNode: * class TreeNode { * publ...

LeetCode 110. Balanced Binary Tree

1. 题目描述 Given a binary tree, determine if it is height-balanced. For this problem, a height-b...

LeetCode(110)Balanced Binary Tree

题目如下: 分析如下: 之前尝试一边计算深度,一边做判断,发现这是无法实现的。因为bool型的返回变量说明了返回值没有深度信息,而如果没有深度信息,那么就无法判断左子树和右子树的深度差是否为1.所...

[LeetCode]Balanced Binary Tree 新理解

Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bina...
  • jhbxlx
  • jhbxlx
  • 2014年08月09日 02:48
  • 443

<LeetCode OJ> 110. Balanced Binary Tree

110. Balanced Binary Tree Total Accepted: 100175 Total Submissions: 298232 Difficulty: Easy G...

和大神们学习每天一题(leetcode)-Balanced Binary Tree

Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bina...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Balanced Binary Tree
举报原因:
原因补充:

(最多只允许输入30个字)