AttributeError: 'Node' 对象没有属性 'next'

ila*_*pad -2 python linked-list

    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()
Run Code Online (Sandbox Code Playgroud)

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

pok*_*oke 5

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

因此,要么更改Node定义以便只调用指针next,要么更改 in 中的用法LinkedList以引用node.next_node而不是仅引用node.next