83/82. Remove Duplicates From Sorted List I/II

  1. Note that before each operation and links preNone curNone to cut, and comprises an initial dummy head when it is not connected.
    def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head or not head.next:
            return head
        
        # 初始化dummy和head不连接
        dummy = ListNode(head.val-1)
        pre = dummy
        cur = head
        real = dummy
        while cur:
            last = cur.next
            if cur.val != pre.val and (not last or cur.val != last.val):
                real.next = cur
                real = real.next
                
            # 完成之后获取下一轮的pre和cur, 并切断pre和cur之间的联系
            pre = cur
            cur = cur.next
            pre.next = None

        return dummy.next

Guess you like

Origin blog.csdn.net/weixin_33862041/article/details/90926428