题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

def deleteDuplication(self, pHead):
    # write code here
    if not pHead:
        return pHead
    #为了防止头结点是重复的,定义一个新结点指向头结点
    temp = ListNode(0)
    temp.next = pHead
    pre, nex = temp, pHead
    while nex:
        if nex.next and nex.next.val == nex.val:
            #如果出现了和当前节点相同的值的时候,当前节点前移一位
            while nex.next and nex.next.val == nex.val:
                nex = nex.next
            pre.next = nex.next#只是指向,并没有动pre,相当于删除
            nex = nex.next
        else:
            pre = pre.next
            nex = nex.next
    return temp.next