二叉树删除涉及到多种情况,需要逐个处理
1.当前节点为叶子节点
直接删除
2.当前节点右子树为空
复制左子树中最大的值,用该值替代当前节点,删除左子树中原节点。
3.当前节点右子树不为空
复制右子树中最小的值,用该值替代当前节点,删除右子树中原节点。
总结
1.如果二叉树中存在大于等于或小于等于的关系,则需要根据情况选择是用右还是左,如果是严格大于小于的话左右都一样。
2.由于替换节点时,对于被提拔的节点来说,原本的位置的处理和删除类似,因此可以将这个操作抽象出来,从而递归调用
原文地址:https://www.cnblogs.com/trickofjoker/p/10504944.html
时间: 2024-10-31 15:03:58