#110 Balanced Binary Tree

来源:互联网 发布:python ascii转utf8 编辑:程序博客网 时间:2024/04/20 10:52

题目:

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.

题解:

记录depth,比较abs(leftheight- rightheight) <= 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 int getHeight(TreeNode p){        if(p==null)            return 0;                    int leftheight = getHeight(p.left);        if(leftheight == -1)            return -1;                int rightheight = getHeight(p.right);        if(rightheight == -1)            return -1;                if(Math.abs(leftheight-rightheight)>1)            return -1;        else            return Math.max(leftheight,rightheight)+1;    }        public boolean isBalanced(TreeNode root) {        if(getHeight(root) == -1)            return false;        else            return true;    }}

参考:http://www.programcreek.com/2013/02/leetcode-balanced-binary-tree-java/

0 0
原创粉丝点击