通过打印数组"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))