在我上次删除重复项的代码中,方法removeDup
不起作用。
最后一个print(ll.display())
正在打印上一个链表。
我希望它只打印唯一的节点。我在removeDups
方法中遗漏了什么?
我不明白。这里的代码中发生了什么
class Node:
def __init__(self,data = None):
self.data = data
self.next = None
def __repr__(self):
return self.data
class LList:
def __init__(self):
self.head = None
def display(self):
current = self.head
node = []
while current != None:
node.append(current.data)
current = current.next
return node
def append(self, data):
elem = Node(data)
if self.head == None:
self.head = elem
else:
current = self.head
while current.next != None:
current = current.next
current.next = elem
def add_atFront(self, data):
elem = Node(data)
if self.head == None:
self.head = elem
else:
elem.next = self.head
self.head = elem
def removeDup(self):
current = self.head
previous = None
elems = []
while current != None:
if current.data in elems:
previous.next= current.next
else:
elems.append(current.data)
previous = current
current = current.next
ll= LList()
print(ll.display())
ll.append(65)
ll.append(7)
ll.add_atFront('65')
ll.add_atFront('Bare')
ll.insert('10',0)
ll.insert('7',2)
print(ll.display())
ll.removeDup()
print(ll.display())
您的
removeDup
工作正常,问题是65和“65”不是重复的,因此您不应该期望removeDup
重复它们。7和“7”也是如此。另外,请注意,您从未定义过insert
方法,但我假设这只是一个复制错误相关问题 更多 >
编程相关推荐