LintCode Q113 Remove Duplicates from Sorted List II in Python

  • Jinhai ZHOU
  • 5 Minutes
  • 2016年12月7日
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
Definition of ListNode
class ListNode(object):
def __init__(self, val, next=None):
self.val = val
self.next = next
"""
class Solution:
"""
@param head: A ListNode
@return: A ListNode
"""
def deleteDuplicates(self, head):
# write your code here
if head is None or head.next is None:
return head
dummy_head = ListNode(None)
dummy_tail = ListNode(None)
current = dummy_head
while current.next:
current = current.next
current.next = dummy_tail
current = dummy_head
runner = head
next = head.next
while next:
if next and runner.val == next.val:
while next and runner.val == next.val:
runner = runner.next
next = next.next
runner = runner.next
if next is not None:
next = next.next
if next and runner.val != next.val:
current.next = runner
current = runner
runner = runner.next
next = next.next
if runner:
current.next = runner
else:
current.next = None
return dummy_head.next
知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。