题目描述:

 leetcood学习笔记-82-删除排序链表中的重复元素二 随笔

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

方法一:

class Solution(object):
    def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        p = ListNode(0)     # 创建新链表头
        p.next = head
        head = p            # 新的链表头
        
        while p.next:       
            left = p.next   # 左指针,p为当前节点的上一个节点
            right = left    # 右指针
            # 若值相同,则移动右指针,直到右指针下一个节点的值不同为止
            while right.next and (right.next.val == left.val):  
                right = right.next
            if right == left:       # 左右指针相同,则表示不重复
                p = p.next
            else:                   # 左右指针不同,则删除左节点到右节点之间的所有节点
                p.next = right.next
        
        # 返回新链表头
        return head.next

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄