Python 3.x 属性错误:';非类型';对象没有属性';数据';在显示链接列表时

Python 3.x 属性错误:';非类型';对象没有属性';数据';在显示链接列表时,python-3.x,linked-list,Python 3.x,Linked List,我试图以列表的形式显示链表元素,但不断出现以下错误: AttributeError:“非类型”对象没有属性“数据” class Node: def __init__(self,data=None,next=None): self.data = data self.next = next class LinkedList: def __init__(self): self.head = None def insert

我试图以列表的形式显示链表元素,但不断出现以下错误: AttributeError:“非类型”对象没有属性“数据”

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

class LinkedList:
    def __init__(self):
        self.head = None
   
    def insert_at_beginning(self,data):
        node = Node(data,self.head)
        self.head = node
        
    def display(self):
        elements = []
        currNode = self.head
        while currNode:
            currNode = currNode.next
            elements.append(currNode.data)
        print(elements)

if __name__ == "__main__":
    ll = LinkedList()
    ll.insert_at_beginning(1)
    ll.insert_at_beginning(2)
    ll.insert_at_beginning(3)
    ll.display()

有人能在这里解释错误吗?

在while循环之后,
先附加数据,然后再转到下一个。之所以出现此错误,是因为如果
currNode.next
为空,则表示对象没有属性
'data'
。所以,先追加,然后转到下一步。如果
currNode.next
为空,则循环将停止

while currNode:
    elements.append(currNode.data)
    currNode = currNode.next

在while循环之后,
首先追加
数据,然后转到下一个。之所以出现此错误,是因为如果
currNode.next
为空,则表示对象没有属性
'data'
。所以,先追加,然后转到下一步。如果
currNode.next
为空,则循环将停止

while currNode:
    elements.append(currNode.data)
    currNode = currNode.next

错误是某些变量是
None
,但您希望它是
节点
。是的,我计算了,但找不到错误消息应该告诉您的变量。我猜它是
currNode。下一个
。错误是某些变量是
,但您希望它是
节点
。是的,我计算了,但找不到错误消息应该告诉您的变量。我猜是currNode.next。