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.
Solution:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { return isBalancedInt(root)>=0; } private int isBalancedInt(TreeNode root) { if (root==null) return 0; if (root.left==null && root.right==null) return 1; int left = isBalancedInt(root.left); int right = isBalancedInt(root.right); if (left ==-1 || right==-1 || Math.abs(left-right)>1) return -1; return Math.max(left, right)+1; } }
No comments :
Post a Comment