LL和RR

来源:12-5 左旋转和右旋转的实现

慕码人1088981

2018-08-14

	if(balanceFactor>1&&getBalanceFactor(root.left)>=0){
			return rightRotate(root);
		}
	if(balanceFactor<-1&&getBalanceFactor(root.right)<=0){
			return leftRotate(root);
	}

对于需要做平衡操的时候,为什么需要判断等于0这种情况呢?当添加一个节点使得这颗AVL树失去平衡性,那么就会做出平衡调整,所以应当不会出现等于0的情况吧

写回答

1回答

liuyubobobo

2018-08-14

在添加的时候,确实不会出现0的情况,但是在删除的时候会。在后面,我们会用这里写的代码,直接处理删除的情况,所以就先把=0写上啦:)


具体也可以参考这个问答:https://coding.imooc.com/learn/questiondetail/59846.html


加油!:)

1
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程