采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,删除二分搜索树的任意元素时,当待删除节点左右子树都不为空时,为什么要找到比待删除节点大的最小节点,而不是左右两边都找,然后比较一下这两个节点哪个距离待删除节点更近,再选择那个更近的节点来操作呢?为什么直接选择比它大的最接近它的节点呢?
在我们的实现中,没有可比性。如果维护每个子树的高度,可以选择从子树高度高的那边删。但严格意义上,这个优化并不能完全保证让树的高度降低。二分搜索树最好的优化,依然是添加机制使其自维护为平衡二叉树。这个课程后续介绍的无论是AVL树还是红黑树,都拥有这种维护自平衡的机制:)
那老师的意思是删除左子树的最大节点和删除右子树的最小节点都可以是吗?
不好意思,问题时后面没看-_-!!!!
老师,使用前驱或者后继节点在删除元素之后的效果是一样的,是不是说用这两个节点中的哪一个都是一样的,不能说前驱节点更好或者说后继节点更好,这两个节点是没有可比性的?
老师,不用回答我这个问题了,我没看到这节的最后面。。。。看到最后面才发现从左子树找也可以的。。。
继续加油!:)
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.4k 16
1.4k 17
1.4k 14
1.3k 14