This commit is contained in:
krahets
2023-08-03 04:37:52 +08:00
parent d16937ea8f
commit 5222e29e20
18 changed files with 104 additions and 4 deletions
+3 -1
View File
@@ -699,7 +699,9 @@ comments: true
<p align="center"> Fig. 在二叉搜索树中删除节点(度为 1) </p>
当待删除节点的度为 $2$ 时,我们无法直接删除它,而需要使用一个节点替换该节点。由于要保持二叉搜索树“左 $<$ 根 $<$ 右”的性质,因此这个节点可以是右子树的最小节点或左子树的最大节点。假设我们选择右子树的最小节点(或者称为中序遍历的下个节点),则删除操作为:
当待删除节点的度为 $2$ 时,我们无法直接删除它,而需要使用一个节点替换该节点。由于要保持二叉搜索树“左 $<$ 根 $<$ 右”的性质,因此这个节点可以是右子树的最小节点或左子树的最大节点。
假设我们选择右子树的最小节点(即中序遍历的下一个节点),则删除操作为:
1. 找到待删除节点在“中序遍历序列”中的下一个节点,记为 `tmp` 。
2. 将 `tmp` 的值覆盖待删除节点的值,并在树中递归删除节点 `tmp` 。