关于6-12中的一个疑问
来源:6-12 删除二分搜索树的任意元素
WhatsUpBitch
2018-05-03
老师,删除二分搜索树的任意元素时,当待删除节点左右子树都不为空时,为什么要找到比待删除节点大的最小节点,而不是左右两边都找,然后比较一下这两个节点哪个距离待删除节点更近,再选择那个更近的节点来操作呢?为什么直接选择比它大的最接近它的节点呢?
写回答
3回答
-
在我们的实现中,没有可比性。如果维护每个子树的高度,可以选择从子树高度高的那边删。但严格意义上,这个优化并不能完全保证让树的高度降低。二分搜索树最好的优化,依然是添加机制使其自维护为平衡二叉树。这个课程后续介绍的无论是AVL树还是红黑树,都拥有这种维护自平衡的机制:)
222018-06-09 -
WhatsUpBitch
提问者
2018-05-04
老师,使用前驱或者后继节点在删除元素之后的效果是一样的,是不是说用这两个节点中的哪一个都是一样的,不能说前驱节点更好或者说后继节点更好,这两个节点是没有可比性的?
00 -
WhatsUpBitch
提问者
2018-05-03
老师,不用回答我这个问题了,我没看到这节的最后面。。。。看到最后面才发现从左子树找也可以的。。。
012018-05-04
相似问题