本节我们主要讨论 BST 中的一个基本操作 Delete,在进行删除操作的时候,会遇到以下三种情况:
(1)要删除的叶子节点,这种情况,我们只需要直接的把节点删除掉即可。
(2)要删除的节点有且仅有一个孩子节点,这种情况,我们把要删除节点的孩子节点的内容复制到要删除的节点上(即替换要删除节点的内容),然后再把孩子节点删除掉即可。
(3)要删除的节点既有左孩子,又有右孩子,这种情况,我们要先找到中序遍历时,要删除节点的后续节点(也可以用先驱节点),然后把这个后续节点的内容复制到要删除节点上(即内容替换),然后删除那个后续节点即可。