# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next classSolution: defdeleteDuplicates(self, head: ListNode) -> ListNode: ifnot head: return head p = head q = head.next while q: if q.val == p.val: r = q.next p.next = r del q q = r else: p = q q = q.next return head
删除所有重复的元素
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。 返回 已排序的链表 。
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next classSolution: defdeleteDuplicates(self, head: ListNode) -> ListNode: ifnot head: return head dummy = ListNode(next=head) p = dummy q = dummy.next while q and q.next: if q.val == q.next.val: last_deleted = q.val while q and q.val == last_deleted: r = q.next p.next = r del q q = r else: p = q q = q.next return dummy.next