题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5 输出: 1->2->5示例 2:
输入: 1->1->1->2->3 输出: 2->3
解法1,双指针
class Solution(object):
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head:
return None
dummy = ListNode(0)
pre = dummy
dummy.next = head
p = head
while p:
if p.next and p.val == p.next.val:
while p.next and p.val == p.next.val:
p = p.next
p = p.next
pre.next = p
else:
pre = pre.next
p = p.next
return dummy.next