采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
if(balanceFactor>1&&getBalanceFactor(root.left)>=0){ return rightRotate(root); } if(balanceFactor<-1&&getBalanceFactor(root.right)<=0){ return leftRotate(root); }
对于需要做平衡操的时候,为什么需要判断等于0这种情况呢?当添加一个节点使得这颗AVL树失去平衡性,那么就会做出平衡调整,所以应当不会出现等于0的情况吧
在添加的时候,确实不会出现0的情况,但是在删除的时候会。在后面,我们会用这里写的代码,直接处理删除的情况,所以就先把=0写上啦:)
具体也可以参考这个问答:https://coding.imooc.com/learn/questiondetail/59846.html
加油!:)
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.5k 16
1.4k 17
1.4k 14
1.3k 14