您的位置:首页 > 编程语言 > Python开发

leetcode之Remove Duplicates from Sorted List II

2016-01-10 11:29 645 查看
这题就是先求出第一个数来,用来决定头指着的位置,后面则来求中间有重复的情况。代码如下:
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息