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])

我发现您的代码存在一些问题:

  1. 您的 __iter__ 方法不会遍历 self,它会遍历 testlist(对于您的特定测试用例,这本身不是问题,但这在任何其他情况下都会中断)

  2. 你的__init__方法实际上并没有构造链表。它只是将 head 初始化为 None,这意味着您的 __iter__ 将永远没有任何东西可以遍历。

  3. 没有什么用到你的Nodeclass。在典型的链表实现中,列表的 head 将是代表列表第一个元素的 NodeNodenext 将是第二个元素等