1
我正在執行linked list
來研究數據結構。因特網上有很多很好的資源,但我仍然不明白我的代碼的哪部分不起作用。顯示鏈表數據時出錯(缺少最後一個值)
class Node:
def __init__(self, val=None):
self.data = val
self.Next = None
class LinkedList:
def __init__(self):
self.head = None
self.size = 0
def __repr__(self):
temp = self.head
alist = []
while temp.Next is not None:
alist.append(temp.data)
temp = temp.Next
return str(alist)
def add(self, val):
cur = self.head
prev = None
if cur is None:
self.head = Node(val)
else:
while cur is not None:
prev = cur
cur = cur.Next
prev.Next = Node(val)
self.size += 1
if __name__ == '__main__':
alist = LinkedList()
for i in range(10):
alist.add(i)
print(alist)
""" [0,1,2,3,4,5,6,7,8]
我預計它會打印出[0,1,2,3,4,5,6,7,8,9],但它會遺漏最後一個元素。有人可以告訴我我錯過了我的add
方法嗎? 在此先感謝!
在'__repr__'中,當'temp.data'爲'9','temp.Next'爲'None'時,條件失敗,'9'永遠不會添加到'alist'。改變條件爲'while temp is not None' – inspectorG4dget
我以爲我的'add'是錯誤的。謝謝 – jaykodeveloper
@Jay考慮發佈一個答案或刪除你的問題:) –