DSA book描述了从二叉搜索树中删除节点的情况:
“4。要删除的值包含左右子树,在这种情况下我们 提升左子树中的最大值。“
让我们说,我们有以下内容(我试图让它看起来像一棵树):
7
6 8
5 6 8
如果我们删除root(7),它说我们应该把6放到它的位置。现在它看起来像那样(感觉不对):
6
6 8
5 8
现在6是6的左节点。但它不应该,正确(左边的值应该更少)?所以,我想我的问题是:这样的情况可以吗?如果这种情况是可以接受的,那有名字吗?或者我们应该选择其他一些节点来替换被删除的节点吗?
答案 0 :(得分:0)
您是否假设所有“相等”值都在正确的子树中?如果是这样,您始终可以在其右侧子树中替换具有最小值的节点。如果他们可以在任何一方,那么你没有问题。