我正在使用递归通过二进制指令遍历一棵树: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)
答案 0 :(得分:1)
请注意,在这一行中,您传递了4个参数来解码函数。它可能应该只获得3个参数:
decode(root.right(), root.right(), encode, original_root)
您的意思是写:
decode(root.right(), encode, original_root)
?