要判断二叉树是否为平衡二叉树
平衡二叉树的定义 :在一个二叉树中 每个节点子树的左右高度差不超过1
1、首先判断它的根节点是否为空
若是的话,就是平衡二叉树
2、分别求出左右子树的高度
若高度的绝对值不超过一则为平衡二叉树
//计算二叉树高度
public static int calcHigh(Node1 root) {
if (root == null) {
return 0;
}
int left = calcHigh(root.left);
int right = calcHigh(root.right);
int high = Math.max(left, right);
return high;
}
//判断是否为平衡树
public static boolean isBalanced(Node1 root){
if(root==null){
return true;
}
boolean left=isBalanced(root.left);
if(!left){
return false;
}
boolean right=isBalanced(root.right);
if(!right){
return false;
}
int leftheigh=calcHigh(root.left);
int rightheigh=calcHigh(root.right);
int diff=leftheigh-rightheigh;
if(diff>1||diff<-1){
return false;
}
return true;
}
平衡二叉树判断算法
本文介绍了一种判断二叉树是否为平衡二叉树的算法。平衡二叉树定义为任意节点左右子树高度差不超过1。文章详细阐述了通过递归计算二叉树高度并比较左右子树高度来判断平衡性的过程。
846

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



