首页 > 代码库 > Balanced Binary Tree

Balanced Binary Tree

Link:http://oj.leetcode.com/problems/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.

 

 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         if (root == null)
13             return true;
14         int left = getHeight(root.left);
15         int right = getHeight(root.right);
16         if (Math.abs(left - right) > 1)
17             return false;
18 
19         return isBalanced(root.left) && isBalanced(root.right);
20     }
21 
22     public int getHeight(TreeNode root) {
23         if (root == null)
24             return 0;
25         return Math.max(getHeight(root.left), getHeight(root.right)) + 1;
26     }
27 }