二叉搜索树的删除(7种情况)\n设待删除结点为cur,待删除结点的双亲结点为parent\n整体看分以下3种大情况:\n①cur的左为空\n②cur的右为空\n③cur的左和右都不为空\n继续细分:cur是不是root;cur不是root的话,是parent的左还是parent的右\n故有3 + 3 + 1 = 7种情况。\n\ncur.left == null\n①cur是root\n则 root = cur.right;\n②cur不是root,cur是parent.left\n则 parent.left = cur.right;\n③cur不是root,cur是parent.right\n则 parent.right = cur.right;\ncur.right == null\n①cur是root\n则 root = cur.left;\n②cur不是root,cur是parent.left\n则 parent.left = cur.left;\n③cur不是root,cur是parent.right\n则 parent.right = cur.left;\ncur.left != null && cur.right != null\n此时需要使用替换法进行删除,即在它的右子树种寻找中序下的第一个结点(关键码最小),用它的值填补到被删除节点中,再来处理该结点的删除问题。
二叉搜索树的删除
最新推荐文章于 2024-06-25 16:39:44 发布