【发布时间】:2018-02-02 01:45:50
【问题描述】:
我有以下代码:
class LinkedList:
def __init__(self):
self.head = None
我在这个 LinkedList 类中添加了 remove_duplicate() 函数,该函数删除除了列表中的第一个实例之外的所有重复项。
def remove_duplicate(self, value):
prev = None
curr = self.head
count = 0
while curr:
if curr.get_value() == value:
count += 1
if count > 1 :
prev.set_next_node(curr.get_next_node())
prev = curr
curr = curr.get_next_node()
在我的主要功能中,我正在执行这些系列的调用。
linked_list = LinkedList()
linked_list.add("john")
linked_list.add("john")
linked_list.add("john")
linked_list.remove_duplicate("john")
print(linked_list)
我希望得到
['john']
但是我得到了
['john', 'john']
为什么我的代码没有按预期删除重复项?
附言有我之前写的Node代码
class Node:
def __init__(self, new_value):
self.value = new_value
self.next_node = None
def get_value(self):
return self.value
def get_next_node(self):
return self.next_node
def set_value(self, new_value):
self.value = new_value
def set_next_node(self, new_next):
self.next_node = new_next
【问题讨论】:
-
您能否将代码提供给您的
set_next_node函数? -
我更新了我的节点代码
标签: python class linked-list duplicates nodes