二叉搜索树节点删除的问题分为下面几种情况
1.没有子节点,直接删除
2.有单个子节点,直接用子节点替换
3.有两个子节点
寻找后继节点,所谓后继节点是指:
1.左子节点的最最右边子节点
2.右子节点下的最最左边子节点
然后用两者任意一个都行,代替删除节点就行
例如该图下1的后继节点为7和5
但是7后面仍然有节点,把7替换到1,那节点8怎么办
其实现在就变成了删除节点7的递归子问题了
总结而言:
二叉搜索树的删除操作一共有三种情况,其中第三种情况是寻找一个后继节点,替换要删除的节点,并将问题转化为删除后继节点的子问题。