簡體   English   中英

檢查字典中是否存在節點值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM