Balanced Binary Tree

 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 }
原文地址:https://www.cnblogs.com/jasonC/p/3418080.html