【发布时间】:2013-10-15 20:51:04
【问题描述】:
DSA book 描述了从二叉搜索树中删除节点的这种情况:
"4. 要删除的值同时具有左右子树,在这种情况下,我们 提升左子树中的最大值。”
假设我们有以下内容(我试图让它看起来像一棵树):
7
6 8
5 6 8
如果我们删除根 (7),它表示我们应该将 6 放到它的位置。现在看起来像这样(只是感觉不对):
6
6 8
5 8
现在 6 是 6 的左节点。但它不应该,对(左边的值应该更小)?所以,我想我的问题是:有这样的情况可以吗?如果这种情况是可以接受的,那有什么名字吗?或者我们应该选择其他一些节点来代替被删除的节点?
【问题讨论】:
-
一般情况下,BST 中的值不能相同。它是一组 unique 键(在这种情况下也是值)
-
@clcto 这本书的同一页说:“当然,在 BST 中,一个值可能出现不止一次。在这种情况下,该值在 BST 中的第一次出现将被删除。”
标签: data-structures binary-search-tree