所以我一直在嘗試插入一個項目到鏈接列表的前面,它有點作品,但並不完全。以下是我迄今爲止(也有在LinkedList類更多的方法,但我忽略他們,因爲他們不是一個問題):將項目插入鏈表的前面? python
class _Node():
def __init__(self, data=None, link=None):
self.data = data
self.link = link
class LinkedList():
def __init__(self):
self.first = None
self.size = 0
def insert(self, ind, item):
if self.first is None:
self.first = _Node(item)
elif ind == 0: # this is where the problem is. When I try to
temp = self.first # insert a node to the front, it seems to
temp.link = self.first.link # forget about the rest of the nodes.
self.first = _Node(item)
self.first.link = temp
else:
count = 0
while count != ind - 1:
count += 1
self.first = self.first.link
self.first.link = _Node(item, self.first.link)
self.size += 1
說我有這個殼:
>>> L = LinkedList()
>>> L.insert(0, 5)
>>> L.insert(1, 10)
>>> L.insert(0, 20)
>>> L[0]
20
>>> L[1]
5
>>> L[2]
# and here is an error message, it says NoneType object has no attribute 'data'
所以在我上面的代碼中,我想要做的是創建一個與第一個節點對象相同的臨時節點對象,我將該臨時節點鏈接到第一個節點鏈接,創建新節點,然後將新的節點到臨時的,但這不起作用。 任何幫助將是偉大的,謝謝!
爲什麼不使用內置數據結構? – linbo 2013-03-11 07:22:22
你是什麼意思?我是編程新手,我正在做這個檢查測試。 – peppy 2013-03-11 07:26:22
我的意思是蟒蛇已經有鏈接列表庫 – linbo 2013-03-11 07:28:19