题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表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
京公网安备 11010502036488号