我正在使用二叉搜索树,我的递归删除方法有点困难。除非我尝试从最顶层删除,否则一切似乎都有效。当我想从根目录中删除时,我将用根目录右边的最小值替换它。它适用于所有其他子根,但是当我尝试删除第一个根时,它不会替换该值。但它会删除该值,假设用于替换它。我真的很感激一些建议。
def remove_element(self, t):
if self.__root == None:
raise ValueError
else:
self.__remove_element(t, self.__root)
return self.__root
答案 0 :(得分:0)
您的remove_element
永远不会分配给self.__root
(并且没有任何分配给任何“值”属性),所以当然根本不会改变。