動機

用prev代表重複的第一個node 也看一下,82作對比

Problem

Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.

 

Example 1:

Input: head = [1,1,2]Output: [1,2]

Example 2:

Input: head = [1,1,2,3,3]Output: [1,2,3]

 

Constraints:

  • The number of nodes in the list is in the range [0, 300].
  • -100 <= Node.val <= 100
  • The list is guaranteed to be sorted in ascending order.

Sol

這題還好,反倒是82,比較有趣 可以與這題一起看

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        prev, now, ret = [None, head, head]
        while now:
            if prev and now.val == prev.val:
                prev.next = now.next
            else:
                prev = now
            now = now.next
        return ret