Python 这种链表实现有什么问题?

Python 这种链表实现有什么问题?,python,singly-linked-list,attributeerror,Python,Singly Linked List,Attributeerror,运行脚本会产生以下错误: Traceback (most recent call last): File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 49, in <module> llist.printList() File "D:/PycharmProjects/GeeksforGeeks/Linked Li

运行脚本会产生以下错误:

Traceback (most recent call last):
  File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 49, in <module>

llist.printList()
  File "D:/PycharmProjects/GeeksforGeeks/Linked List/Insertion of Nodes in LinkedList.py", line 39, in printList
AttributeError:“int”对象没有属性“data”

我的代码是:-
在您的方法
append
last.next
应该是
new\u节点

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

class LinkedList:
    def __init__(self):
        self.head = None

    def push(self,new_data):
        new_node = Node(new_data)
        new_node.next = self.head
        self.head = new_node

    def insertAfter(self,prev_node,new_data):
        if prev_node is None:
            return

        new_node = Node(new_data)
        new_node.next = prev_node.next
        prev_node.next = new_node

    def append(self,new_data):
        new_node = Node(new_data)

        if self.head is None:
            self.head = new_node
            return

        last = self.head
        while (last.next):
            last = last.next

        last.next = new_node

    def printList(self):
        temp = self.head
        while (temp):
            print(temp.data,end=' ')
            temp = temp.next

if __name__ == '__main__':
    llist = LinkedList()
    llist.append(6)
    llist.push(7)
    llist.push(1)
    llist.append(4)
    llist.insertAfter(llist.head.next,8)
    llist.printList()
输出:

1 7 8 6 4

append
函数中有一个错误:

def-append(自身、新数据):
新节点=节点(新数据)
如果self.head为无:
self.head=新节点
返回
last=self.head
而last.next:
最后一个
last.next=new_node#不应是新的_数据

append中的最后一行:“Last.next=new_data”您正在使最后一个节点中的
next
链接指向数据,而不是包含数据的节点Thank You@bigbounty
class Node:
    def __init__(self,data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def push(self,new_data):
        new_node = Node(new_data)
        new_node.next = self.head
        self.head = new_node

    def insertAfter(self,prev_node,new_data):
        if prev_node is None:
            return

        new_node = Node(new_data)
        new_node.next = prev_node.next
        prev_node.next = new_node

    def append(self,new_data):
        new_node = Node(new_data)

        if self.head is None:
            self.head = new_node
            return

        last = self.head
        while (last.next):
            last = last.next

        last.next = new_node

    def printList(self):
        temp = self.head
        while (temp):
            print(temp.data,end=' ')
            temp = temp.next

if __name__ == '__main__':
    llist = LinkedList()
    llist.append(6)
    llist.push(7)
    llist.push(1)
    llist.append(4)
    llist.insertAfter(llist.head.next,8)
    llist.printList()
1 7 8 6 4