1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
   | 
 
  public class JudjeBalanceTree { 		public static void main(String[] args) { 				Node head = new Node(1); 				head.left = new Node(2); 				head.right = new Node(3); 				head.left.left = new Node(4); 				head.left.right = new Node(5); 				head.right.left = new Node(6); 				head.right.right = new Node(7); 				System.out.println(isBalanceTree(head)); 		}
  		public static boolean isBalanceTree(Node head) { 				boolean[] res = new boolean[1]; 				res[0] = true; 				getHeight(head, 1, res); 				return res[0]; 		}
  		public static int getHeight(Node head, int level, boolean[] res) { 				if (head == null) { 						return level; 				} 				int lH = getHeight(head.left, level + 1, res); 				if (!res[0]) { 						return level; 				} 				int rH = getHeight(head.right, level + 1, res); 				if (!res[0]) { 						return level; 				} 				if (Math.abs(lH - rH) > 1) { 						res[0] = false; 				} 				return Math.max(lH, rH); 		} }
 
  |