删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表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 not pHead : #or not pHead.next
return pHead
lst = []
node = pHead
tmp = None
while node:
if node.val == tmp:
node = node.next
elif node.next and node.val == node.next.val:
tmp = node.val
node = node.next.next
else:
lst+=[node]
node = node.next
for x in range(len(lst)-1):
lst[x].next = lst[x+1]
if not lst :
return
lst[-1].next = None
return lst[0]