/**
* 二叉搜索树的删除一般分为三种情况;
* 1. 要删除的节点本身是叶子结点 -> 直接删除
* 2. 要删除的节点本身只有一个孩子节点 -> 用孩子节点替换他
* 3. 要删除的节点本身有两个孩子节点 -> 找到该节点A 的后继节点(比该节点大的最小节点,也就是右子树的最左叶子结点)B 然后用B替换A 最后再右子树中删除B(又可以分为 1、2 按对应的情况处理即可)
*
* @param root
* @param value
* @return
*/
public TreeNode<Integer> delete(TreeNode<Integer> root, Integer value) {
//如果root为空 则直接返回null,此时可分为两种情况:1、二叉搜索树根节点本身为空;2、未找到目标节点
if (root == null) {
return null;
}
数据结构——二叉搜索树之节点删除
最新推荐文章于 2024-08-03 23:15:57 发布
本文深入探讨了二叉搜索树中删除节点的操作,详细阐述了如何删除不同情况(叶子节点、只有一个子节点和有两个子节点的情况)的节点,并讨论了保持二叉搜索树性质的重要性。
摘要由CSDN通过智能技术生成