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

时间:2015-10-09 20:49:12

标签: 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()

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

1 个答案:

答案 0 :(得分:3)

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

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