这是来自 Heap讲座幻灯片 8.
添加、查看和删除对我来说很有意义,为什么这些操作是 O(log n) - 遍历 BST 在每次移动后将树切成两半。谁能解释最后一句话背后的直觉,即“树倾向于向右变得不平衡”?为什么不离开?对我来说,它应该是平衡的,因为平均法则,就像随着时间的推移,小于根的元素频率应该与大于根的元素频率持平。 Law of Averages
最佳答案
不要想太多。这仅仅是因为 remove
操作总是转到最左边的元素并将其删除。经过几次这样的操作后,无论根节点或其他任何东西如何,您最终都会得到树右侧“更重”的树。
即使您有一个非常高的根节点倾向于将新添加的元素推到左边,您最终仍然会在左边得到一个“右重”的子树。
关于java - 为什么二叉搜索树会变得向右不平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796695/