[Leetcode] 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.
Solution:
1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean flag=true; 12 public boolean isBalanced(TreeNode root) { 13 getHeight(root); 14 return flag; 15 } 16 private int getHeight(TreeNode root) { 17 // TODO Auto-generated method stub 18 if(!flag) 19 return -1; 20 if(root==null) 21 return 0; 22 int lHeight=getHeight(root.left)+1; 23 int rHeight=getHeight(root.right)+1; 24 if(Math.abs(lHeight-rHeight)>1) 25 flag=false; 26 return lHeight>rHeight?lHeight:rHeight; 27 } 28 }