繁体   English   中英

在二进制搜索树Python中删除节点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM