[英]checking node value exists in dictionary
我正在嘗試編寫一個片段,以刪除python鏈表中的重復元素。
我檢查字典中以前的節點值的條件不成立。 我無法弄清楚為什么它總是返回false。
節點值是[0-> 1-> 2-> 2-> 3-> 4-> 4-> 5
def RemoveRepeatNode(self):
curr_node = self.head
unique_list = {}
unique_list[curr_node.data] = 1
while(curr_node.next != None):
if curr_node.next.data in unique_list: ## doesn't evaluate to True
print "repeated values ", curr_node.next.data
curr_node = curr_node.next.next
else:
unique_list[curr_node.data] = 1
curr_node = curr_node.next
您的if子句可能很好,但是您不要重新鏈接。 更改:
def RemoveRepeatNode(self):
curr_node = self.head
unique = {curr_node.data} # better data structure: set
while(curr_node.next != None):
if curr_node.next.data in unique:
curr_node.next = curr_node.next.next
# ^^^^^ relink!
else:
unique.add(curr_node.next.data)
# add .next.data ^^^^^ that's the one you checked
curr_node = curr_node.next
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.