我写的:
def remove(self,item):
found=False
current=self.head
previous=None
while current!=None and not found:
if current.getData==item:
previous.setNext()==current.getNext()
return True
# 那,current就保留在链表上了?
else:
previous=current
current=current.getNext()
return found
书上写的:
def remove(self,item):
found=False
current=self.head
previous=None
while not found:
if current.getData()==item:
found=True
else:
previous=current
current=current.getNext()
if previous==None:
self.head=current.getNext()
else:
previous.setNext(current.getNext())
有什么区别呢?
书上给的参考代码,它的while是确定位置。然后后面的if else 才是进行remove操作的动作。而且,它有要删除的item是head的例外处理。
而我的,没有对item是head的处理。
而且,有种火急火燎地感觉!
感受到了一丢丢艺术~~学习了啦!