【问题标题】:AttributeError: 'Node' object has no attribute 'next'AttributeError:“节点”对象没有属性“下一个”
【发布时间】:2015-10-09 20:49:11
【问题描述】:
    class Node(object):

        def __init__(self, data = None, next = None):
            self.data = data
            self.next_node = next

        def get_data(self):
            return self.data

        def get_next(self):
            return self.next_node

        def set_next(self, new_next):
            self.next_node = new_next

  class LinkedList(object):

    def __init__(self, head = None):
        self.head = head

    def insert(self, data):
        new_node = Node(data, None)
        if self.head is None:
            self.head = new_node
        else:
            new_node.next = self.head
            self.head = new_node

          def print_list(self):
                    temp = self.head
                    while temp!=None:
                        print(temp.data)
                        if temp.next != None:
                           temp = temp.next
s = LinkedList()
s.insert(3)
s.insert(4)
s.insert(5)
s.insert(6)
  s.print_list()

我总是得到这个 Node 对象在控制台中没有 next 属性。它打印链接列表,但我如何摆脱该警告。我应该附加什么条件?

【问题讨论】:

  • 告诉我们class Node的定义

标签: python linked-list


【解决方案1】:

LinkedList 中,您继续使用属性名称next 访问节点的下一个节点,但在Node 类型中,您实际上定义了名为next_node 的下一个指针。

因此要么更改Node 的定义,使指针仅称为next,要么更改LinkedList 中的用法以引用node.next_node 而不仅仅是node.next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2017-12-29
    • 2020-03-11
    • 2021-09-26
    • 2019-02-02
    相关资源
    最近更新 更多