标签:
题目:
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.
题解:
采用递归的方法,要记录depth用来比较。
代码如下:
1 public int checkBalanced(TreeNode t){ 2 if(t==null) 3 return 0; 4 5 int leftheight = checkBalanced(t.left); 6 if(leftheight == -1) 7 return -1; 8 9 int rightheight = checkBalanced(t.right); 10 if(rightheight == -1) 11 return -1; 12 13 if(Math.abs(leftheight-rightheight)>1) 14 return -1; 15 else 16 return Math.max(leftheight,rightheight)+1; 17 } 18 19 public boolean isBalanced(TreeNode root) { 20 if(checkBalanced(root) == -1) 21 return false; 22 else 23 return true; 24 }
reference: http://www.cnblogs.com/springfor/p/3879824.html
标签:
原文地址:http://www.cnblogs.com/hygeia/p/4714475.html