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 isBalanced(TreeNode root) {
12 // IMPORTANT: Please reset any member data you declared, as
13 // the same Solution instance will be reused for each test case.
14 if (root == null)
15 return true;
16 if (Math.abs(getHeight(root.left)- getHeight(root.right)) > 1)
17 return false;
18 return isBalanced(root.left) && isBalanced(root.right);
19 }
20 private int getHeight(TreeNode root){
21 if(root == null)
22 return 0;
23 return Math.max(getHeight(root.left), getHeight(root.right)) + 1;
24 }
25 }