删除二进制搜索树的部分



我正在尝试解决以下问题:

返回修改为仅包含值<=的二进制搜索树t的根k.(使用正常的BST类,其中我们有一个项目,左和右)

def prune(t,k):
    if not t:
        return None
    if k < t.item
        while t.item > k:
            t = t.left
    return t

我认为我做得完全不对。。也许有一些简单的递归方法可以做到这一点?

我想你想要这样的东西:

def prune(t, k):
    if t is None or t.item > k:
        return None
    t.right = prune(t.right, k)
    return t

这是递归的,当它到达任何None节点或大于k的节点时,它将"修剪"。由于这是一个BST,t.item <= k意味着t.left中的所有节点也将是,所以我们可以忽略它们。

相关内容

  • 没有找到相关文章

最新更新