我想实现一个算法,以从链表中删除重复,但我的算法冻结,当它来检查当前节点是否有数据与下一个相等。链接列表删除重复没有缓冲区
class Node:
def __init__(self, data, next):
self.data = data
self.next = next
class LinkedList:
def __init__(self, head = None):
self.head = head
def add(self, item):
newNode = Node(item, self.head)
self.head = newNode
def printit(self):
current = self.head
while current is not None:
print(current.data)
current = current.next
def removeDuplicates(self):
current = self.head
while current != None:
runner = current
while runner.next != None:
if runner.next.data == current.data:
runner.next = current.next.next
else:
runner = current.next
current = current.next
mylist = LinkedList()
mylist.add(31)
mylist.add(77)
mylist.add(31)
mylist.add(22)
mylist.add(22)
mylist.add(22)
mylist.printit()
mylist.removeDuplicates()
mylist.printit()
这可能真的很愚蠢,但我现在无法发现它,有什么想法吗?
'next'是一个python关键字。使用其他名称以避免混淆。 – kmad1729