如何根据重新绑定变量的条件对以下代码进行重复数据删除?

时间:2018-11-27 18:43:59

标签: python python-3.x

我应该如何删除此代码的重复数据(简化):

root = # some node in a binary tree
item = # some item that gets stored with a node

# The code that I want to deduplicate (insert into binary tree)
current_node = root
while current_node:
    if current_node.mark > item:
        if current_node.left:
            current_node = current_node.left
        else:
            current_node.left = Node(item)
            break

    # the same thing but with current_node.right :(
    elif current_node.mark < item:
        if current_node.right:
            current_node = current_node.right
        else:
            current_node.right = Node(item)
            break

在C ++中,我会这样做:

auto& dir_node = current_node.mark > item ? current_node.left : current_node.right;

,然后在我正在使用dir_node的地方使用current_node.left/right。但是Python没有引用。如果我这样做:

dir_node = current_node.left if current_node.mark > item else current_node.right

它工作正常,但仅用于if部分。对于其他部分,它不起作用,因为据我所知,我正在重新绑定dir_node,而实际上没有修改对象dir_node的引用。那比我现在拥有的要好,但是仍然有些重复。

所以我的问题是:如何对这段代码进行重复数据删除?

0 个答案:

没有答案