二叉平衡(AVL)树中的 LL旋转、RR旋转、LR旋转、RL旋转 的详细解释
文章目录前言一、旋转的分类1.LL平衡旋转2.RR平衡旋转3.LR平衡旋转4.RL平衡旋转二、实现LL平衡旋转三、实现RR平衡旋转四、实现LR平衡旋转五、实现RL平衡旋转前言我们知道在二叉平衡(AVL)树中是存在平衡因子的,平衡因子的作用是判断AVL树是否平衡,当AVL树不平衡时,我们就需要通过旋转使其重回平衡。一、旋转的分类1.LL平衡旋转所谓的LL平衡旋转是指,新插入的节点N使AVL树失去平衡
前言
我们知道在二叉平衡(AVL)树中是存在平衡因子的,平衡因子的作用是判断AVL树是否平衡,当AVL树不平衡时,我们就需要通过旋转使其重回平衡。
一、旋转的分类
1.LL失衡
所谓的LL平衡旋转是指,新插入的节点N使AVL树失去平衡,且最先失去平衡的节点为P。当N是在P的左节点的左子树上时,需要通过LL平衡旋转使AVL树重回平衡。如下图:

2.RR失衡
所谓的LL平衡旋转是指,新插入的节点N使AVL树失去平衡,且最先失去平衡的节点为P。当N是在P的右节点的右子树上时,需要通过LL平衡旋转使AVL树重回平衡。如下图:

3.LR失衡
所谓的LL平衡旋转是指,新插入的节点N使AVL树失去平衡,且最先失去平衡的节点为P。当N是在P的左节点的右子树上时,需要通过LL平衡旋转使AVL树重回平衡。如下图:

4.RL失衡
所谓的LL平衡旋转是指,新插入的节点N使AVL树失去平衡,且最先失去平衡的节点为P。当N是在P的右节点的左子树上时,需要通过LL平衡旋转使AVL树重回平衡。如下图:

二、实现LL平衡旋转

三、实现RR平衡旋转

四、实现LR平衡旋转
第一步:通过“左旋转”,将"LR"转换成“LL”
第二步:通过“右旋转”,将“LL”转换成“平衡树”

注意:我们可以发现,在实现LR的平衡时,我们用到了LL,和RR,所以在真是的代码中,我们只需要写LL和RR的逻辑代码,对于RL和LR而言,只需要调用RR和LL即可。
五、实现RL平衡旋转
第一步:通过“右旋转”,将"RL"转换成“RR”
第二步:通过“左旋转”,将“RR”转换成“平衡树”

注意:我们可以发现,在实现LR的平衡时,我们用到了LL,和RR,所以在真是的代码中,我们只需要写LL和RR的逻辑代码,对于RL和LR而言,只需要调用RR和LL即可。
更多推荐


所有评论(0)