牛客网上的剑指 offer的在线编程:
题目描述:
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
# -*- coding:utf-8 -*-
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def deleteDuplication(self, pHead):
# write code here
if pHead is None or pHead.next is None:
return pHead
bhead = ListNode(pHead.val - 1)
bhead.next = pHead
first_node = bhead
second_node = pHead
while second_node and second_node.next:
if second_node.val == second_node.next.val:
del_val = second_node.val
while second_node and (second_node.val == del_val):
second_node = second_node.next
first_node.next = second_node
else:
first_node = first_node.next
second_node = second_node.next
return bhead.next