leetcode之Remove Duplicates from Sorted List II

来源:互联网 发布:网络彩票何时开售 编辑:程序博客网 时间:2024/06/03 21:35
这题就是先求出第一个数来,用来决定头指着的位置,后面则来求中间有重复的情况。代码如下:
# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution(object):    def deleteDuplicates(self, head):        """        :type head: ListNode        :rtype: ListNode        """        if not head:            return head        if not head.next:            return head        if head.val == head.next.val:            a = head.val            head = head.next.next            head1 = head            while head1:                if head1.val == a:                    head = head1.next                    head1 = head1.next                else:                    head = head1                    a = head.val                    head1 = head1.next                    if head.next:                        if head.next.val != a:                            break        if head:            head2 = head            head1 = head.next            while head1:                if head1.next:                    if head1.next.val == head1.val:                        a = head1.val                        while head1:                            if head1.val == a:                                head1 = head1.next                            else:                                head2.next = head1                                break                        else:                            head2.next = head1                            break                    else:                        head2 = head2.next                        head1 = head1.next                else:                    break        return  head

0 0
原创粉丝点击