带有两个参数的Python LinkedList

问题描述 投票:1回答:1

我想创建一个链表,其中每个节点的货物都有两个数据。

这是我到目前为止所获得的,它运行无误,但没有输出。

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])
python singly-linked-list
1个回答
2
投票

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

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

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

  3. 没有任何东西使用您的Node类。在典型的链表实现中,列表的head将是表示列表的第一个元素的Node,该nextNode将是第二个元素,等等。

© www.soinside.com 2019 - 2024. All rights reserved.