我的代码从链接列表中删除重复项有什么问题?

时间:2016-09-21 04:24:58

标签: python

Python新手,我的代码传递除输入1 - > 0之外的所有测试用例,它不返回任何内容而不是1-> 0。这与None的值有关吗?

def RemoveDuplicates(head):
    if head == None or head.next == None:
        return 
    else:
        temp = head
        while(temp.next != None):
            if temp.data == temp.next.data:
                temp.next = temp.next.next
            else:
                temp = temp.next
        return head

2 个答案:

答案 0 :(得分:0)

尝试使用is None代替== None。应使用isis not对单身人士进行比较。

答案 1 :(得分:0)

我们看不到头部的类和它定义的操作,是在该类上定义的__eq__魔术函数吗?

head.next == None是否有可能为该课程评估head.next.data == None?在这种情况下,0 == None的计算结果为True。

正如其他人所说,使用head.next is None

解决了这个问题

我怀疑你在第一种情况下应该return head,但是在这种情况下似乎不应该触发,除非我上面提到的评估正在发生。