我想创建一个链表,其中每个节点的货物都有两个数据。
这是我到目前为止所获得的,它运行无误,但没有输出。
class Node():
def __init__(self, value):
self.value = value
self.next = None
class LinkedList:
def __init__(self, data):
self.head = None
self.label = data[0][0]
self.value = data[0][1]
self.tail = None if (len(data) == 1) else LinkedList(data[1:])
def __iter__(self):
node = testlist.head
while node:
yield node
node = node.next
testlist = LinkedList()
print([node.value for node in testlist])
我发现您的代码有一些问题:
您的__iter__
方法不会在self
上进行迭代,而是在testlist
上进行迭代(对于您的特定测试用例而言,这本身不是问题,但是在任何其他情况下都会中断)
您的__init__
方法实际上没有构造链表。它只是将head
初始化为None,这意味着您的__iter__
将永远不会有任何内容可以遍历。
没有任何东西使用您的Node
类。在典型的链表实现中,列表的head
将是表示列表的第一个元素的Node
,该next
的Node
将是第二个元素,等等。