剑指offer之056-删除链表中重复的结点

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None


class Solution:
    def deleteDuplication(self, pHead):
        # write code here
        head = ListNode(0)
        head.next = pHead
        pre = head
        p = head.next
        while p and p.next:
            if p.next.val == p.val:
                while p.next and p.next.val == p.val:
                    p.next = p.next.next
                pre.next = p.next
                p = pre.next
            else:
                pre = p
                p = p.next
        return head.next

关于明柳梦少

坚守自己的原则,不随波逐流。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注