[英]Deleting a Node in Binary Search Tree Python
这是删除具有两个子节点的节点的代码
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
我删除了我的树的5个形状,如下所示:
2
\
8
我的预期结果是:
8
\
2
我究竟做错了什么 ??
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.