即使在上一行中打印变量,我的递归函数也返回None
当我调用该函数时,它会完全打印我想要的内容,但返回None!
def nRound(vector, root):
tempRoot = root
a = vector.pop()
b = vector.pop()
if a+b < 1.0:
vector.append(a+b)
rootn = Node(a+b)
rootn.right = tempRoot
rootn.left = Node(b)
nRound(vector, rootn)
else:
rootn = Node(a+b)
rootn.right = tempRoot
rootn.left = Node(b)
print(rootn)
return rootn
我不明白为什么它返回None而不是rootn。预先感谢。
答案 0 :(得分:0)
您的函数是递归的,只有基本情况返回一个值。递归调用中的值不会向上传递:
nRound(vector, rootn)
这意味着仅当函数立即达到基本情况时,外部调用方才会获得值。上一行应该是
return nRound(vector, rootn)