平衡二叉树:对于任意一个节点左子树和右子树的高度差不能超过1
二分搜索树容易退化成链表 使用平衡因子转化为平衡二叉树
平衡二叉树的高度和节点数量之间的关系也是O(logn)的
标注节点的高度
平衡因子:左右子树的高度差的绝对值
维护平衡因子
右旋转过程LL
//右旋转
private Node rightRotate(Node y) {
Node x = y.left;
Node T3 = x.right;
x.right = y;
y.left = T3;
y.height = Math.max(getHeight(y.left), getHeight(y.right)) + 1;
x.height = Math.max(getHeight(x.left), y.height) + 1;
return x;
}
左旋转过程RR
//左旋转
private Node leftRotate(Node y) {
Node x = y.right;
Node T2 = x.left;
x.left = y;
y.right = T2;
y.height = Math.max(getHeight(y.left), getHeight(y.right)) + 1;
x.height = Math.max(y.height, getHeight(x.right)) + 1;
return x;
}
来源:CSDN
作者:RecZ.z
链接:https://blog.csdn.net/weixin_43975899/article/details/103508980