我最好的猜测是,当您从已经平衡的AVL树中插入或删除一个元素时,旋转一次总是足以平衡AVL树。
一转总是足够的吗?
一个示例将在需要多次旋转的情况下提供帮助。
PS:我将RL/LR旋转仅算作一旋转。
最佳答案
对于 Blade 1,最多只能旋转1次。
对于删除,旋转数以O(log(n))为界。 Log(n)是树的高度。
有关AVL删除的更多说明。
从AVL中删除节点时,可能会导致树不平衡,您必须追溯到不平衡的点。如果不平衡点是根。您必须从上到下重新平衡树。
关于data-structures - 平衡AVL树需要多个轮换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912461/