为什么这个函数不返回值列表?



通过打印数组"total",我可以看到值正确地追加。然而,当我打印(linked_list_values(a))时,它返回None。

a = Node(5)
b = Node(3)
c = Node(9)
total = []
def linked_list_values(head):
print(total)
if head == None:
return None
total.append(head.num)
linked_list_values(head.next)
print(linked_list_values(a))

函数返回None,因为其中从来没有return语句。它,突变total,但它在原地突变。

尝试在函数运行后打印total的值

>>> linked_list_values(a)
None
>>> total
[5, 3, 9] # Assuming a.next == b and b.next == c

你的函数没有为底部的语句返回任何内容,这意味着Python将把你的函数的返回值读取为None。一个简单的修复方法是在递归调用后添加一个return语句。

a = Node(5)
b = Node(3) 
c = Node(9) 
total = [] 
def linked_list_values(head):  
if head == None:  
return None 
total.append(head.num) 
linked_list_values(head.next)
return total 
print(linked_list_values(a))

相关内容

  • 没有找到相关文章

最新更新