递归问题,函数需要3个位置参数,但给出了4个

时间:2019-04-26 20:56:45

标签: python

我正在使用递归通过二进制指令遍历一棵树:0左移,1右移。

当由于函数参数问题(我实际上不理解)而想要递归查找下一个叶子时,这种情况就变得越来越少。

我尝试使用辅助函数,但是无法准确地编写它

def decode(root, encode, original_root):
    if len(encode)== 0:
        return ""
    if encode[0] == "0":

        if root.left() != None:
            print("left", root.getValue())
            encode.pop(0)
            decode(root.left(), encode, original_root)
        else:
            print('last', root.getValue())
            return root.getValue() + decode(original_root, encode, original_root)

    if encode[0]== '1':
        if root.right()!= None:
            print('right',root.getValue())
            encode.pop(0)
            decode(root.right(), root.right(), encode, original_root)
        else:
            print(root.getValue())
            return root.getValue() + decode(original_root, encode, original_root)

1 个答案:

答案 0 :(得分:1)

请注意,在这一行中,您传递了4个参数来解码函数。它可能应该只获得3个参数: decode(root.right(), root.right(), encode, original_root)

您的意思是写: decode(root.right(), encode, original_root)