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.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { if(root==null) return true; if(root.left==null&&root.right==null) return true; int len=maxDepth(root.left)-maxDepth(root.right); if(Math.abs(len)<=1&&isBalanced(root.left)&&isBalanced(root.right)) return true; return false; } public int maxDepth(TreeNode root) { if(root==null) return 0; if(root.left==null&&root.right==null) return 1; int num1=maxDepth(root.left),num2=maxDepth(root.right); int num=(num1>=num2?num1:num2)+1; return num; } }
leetcode_110_Balanced Binary Tree
原文地址:http://blog.csdn.net/mnmlist/article/details/44855909