在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
# # 用dictionary存一下每个nodes的个数,这样只要看到它是大于1的,就删。
class Solution:
def deleteDuplication(self, pHead):
# write code here
dummy = ListNode(-1)
dummy.next = pHead
cur = dummy.next
nodeNumber = {}
while cur:
if cur.val in nodeNumber:
nodeNumber[cur.val] += 1
else:
nodeNumber[cur.val] = 1
cur = cur.next
cur = dummy
while cur.next:
if nodeNumber[cur.next.val] > 1:
cur.next = cur.next.next
else:
cur = cur.next
return dummy.next