注意:head也有可能被删除,所以设置个哑变量dummy指向head,统一操作。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
dummy = ListNode(-101, head)
pre, cur = dummy, head
repeated = -101
while cur.next:
nxt = cur.next
if cur.val == nxt.val or cur.val == repeated:
pre.next = nxt
repeated = cur.val
cur = nxt
else:
pre = cur
cur = cur.next
if cur.val == repeated:
pre.next = None
return dummy.next