JZ38:
这两道题目应该放在一起讲
*/
public class Solution {
public int TreeDepth(TreeNode root) {
if(root==null)//如果树为空,深度为0
return 0;
int a = TreeDepth(root.left);//递归左子树深度
int b = TreeDepth(root.right);//递归右子树深度
if(a<b)//由于最顶层的根节点也算一层,要+1
return b+1;
else
return a+1;
}
}
JZ39是判断每一节点的左右子树的深度
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if(root==null)
return true;
int a = deep(root.left);
int b = deep(root.right);
boolean k = true;
if((a-b)!=1&&(a-b)!=-1&&(a-b)!=0)
k = false;
boolean m = IsBalanced_Solution(root.left);
boolean l = IsBalanced_Solution(root.right);
return m&&l&&k;
}
public static int deep(TreeNode root1){
if(root1==null){
return 0;
}else{
int a1 = deep(root1.left);
int b1 = deep(root1.right);
if(a1>b1)
return a1+1;
else
return b1 + 1;
}
}
}