classSolution: defdeleteDuplication(self, pHead): if pHead == None: return pHead temp = [] #保存所有的元素 p = pHead while p != None: temp.append(p.val) p = p.next p = pHead while p != None: if temp.count(p.val) > 1: #是重复元素 pHead = self.delNode(pHead,p) p = p.next return pHead defdelNode(self, pHead, pnode): if pHead == pnode:#删除头结点 return pHead.next p = pHead if p.next != pnode: p = p.next p.next = p.next.next return pHead
classSolution: defdeleteDuplication(self, pHead): # write code here if pHead == None: return pHead p = pHead first =ListNode(-1) first.next = p # pre = first #pre是当前结点的前一个位置 # 如果phead是重复结点 while p != Noneand p.next != None: if p.val == p.next.val: tempval = p.val while p and p.val == tempval: p = p.next pre.next = p #直接跳过重复的结点 else: pre = p p = p.next return first.next