
遍历 左子树的深度 右子树的深度 较大的深度+1即为二叉树深度
public class Solution {
public int TreeDepth(TreeNode root) {
//空树为0
if(root == null){
return 0;
}
//如果不是空树 是左树和右树较大的+1
int leftnumber = TreeDepth(root.left);
int rightnumber = TreeDepth(root.right);
return leftnumber>rightnumber ? leftnumber+1 : rightnumber+1;
}
}
38题:

要判断是否是平衡二叉树,首先要计算左右子树的高度,看是否相差为1.然后就是递归了,所有的左右子树。
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if(root==null){
return true;
}
int leftHeight = TreeDepth(root.left);
int rightHeight = TreeDepth(root.right);
int diff = Math.abs(leftHeight-rightHeight);
if(diff>1){
return false;
}
return IsBalanced_Solution(root.left)&&IsBalanced_Solution(root.right);
}
public int TreeDepth(TreeNode root) {
//空树为0
if(root == null){
return 0;
}
//如果不是空树 是左树和右树较大的+1
int leftnumber = TreeDepth(root.left);
int rightnumber = TreeDepth(root.right);
return leftnumber>rightnumber ? leftnumber+1 : rightnumber+1;
}
}
本文介绍了如何计算二叉树的深度以及判断二叉树是否为平衡二叉树的方法。通过递归算法,首先计算左子树和右子树的深度,再对比两者的高度差来判断平衡性。
1万+

被折叠的 条评论
为什么被折叠?



