【问题标题】:Python LinkedList with two arguments带有两个参数的 Python 链表
【发布时间】:2020-10-01 09:04:58
【问题描述】:

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

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

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】:

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

    1. 您的 __iter__ 方法不会迭代 self,它会迭代 testlist(对于您的特定测试用例而言,这本身不是问题,但这会破坏任何其他情况)

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

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

    【讨论】:

    • 谢谢!对此仍然很陌生,我再次查看了我的程序逻辑并让一切正常。
    猜你喜欢
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2018-01-25
    相关资源
    最近更新 更多