gpt4 book ai didi

python - 产量值不会在递归中返回

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:19 25 4
gpt4 key购买 nike

我尝试编写一个迭代器,以相反的方式返回链表中的数据,从最后一个节点到头节点。

但由于某种原因,我们只返回第一个值,即第一个递归级别中的值。

============代码==========

class Node:

def __init__(self ,data ,next=None):

self.data = data
self.next = next

def foo(head):

if head.next is None:
yield head.data
else:
foo(head.next)
yield head.data

==============================

head = Node('A',Node("B", Node("C")))

for x in foo(head):

print(x)

========结果==========

========应该是========

一个乙C

最佳答案

以下方法可打印前向节点列表和后向节点列表。

节点类:

>>> class Node:
... def __init__(self, data=None, next=None):
... self.data = data
... self.next = next
... def __str__(self):
... return str(self.data)

具有多个节点的列表

>>> node1 = Node('A')
>>> node2 = Node('B')
>>> node3 = Node('C')

链接节点,第一个节点引用第二个节点,第二个节点引用第三个节点,第三个节点为 None

>>> node1.next = node2
>>> node2.next = node3

打印转发列表

>>> def print_list(node):
... while node:
... print(node),
... node = node.next
... print
...
>>> print_list(node1)
A
B
C

打印向后列表

>>> def print_backward(list):
... if list == None: return
... head = list
... tail = list.next
... print_backward(tail)
... print(head),
...
>>> print_backward(node1)
C
B
A

了解更多详情please refer

关于python - 产量值不会在递归中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com