以下是删除有两个孩子的节点的代码
parent_for_delete = node_for_delete
replacer = node_for_delete.right
while replacer.left:
parent_for_delete = replacer
replacer = replacer.left
node_for_delete.data = replacer.data
if parent_for_delete.left == replacer:
parent_for_delete.left = replacer.right
else:
parent_for_delete.right = replacer.right
这是调用
if node_to_delete is not None:
root.delete(deleted_node)
我用drawtree库打印树
问题是例如当我有下面的树时:
5
/ \
2 8
我删除了我的树形状如下:
2
\
8
我的预期结果是:
8
\
2
我做错了什么?