Python 带两个参数的链表
Python LinkedList with two arguments
我想创建一个链表,其中每个节点的货物有两条数据。
这是我目前得到的结果,它运行没有错误,但没有产生任何输出。
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
class。在典型的链表实现中,列表的 head
将是代表列表第一个元素的 Node
,Node
的 next
将是第二个元素等
我想创建一个链表,其中每个节点的货物有两条数据。
这是我目前得到的结果,它运行没有错误,但没有产生任何输出。
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
class。在典型的链表实现中,列表的head
将是代表列表第一个元素的Node
,Node
的next
将是第二个元素等