在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5python
時間限制:1秒;空間限制:32768K;本題知識點:鏈表指針
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def deleteDuplication(self, pHead): # write code here p0 = ListNode(0) #建立一個新的頭節點 p = p0 #中間節點p,用來存儲前一個節點 p0.next = pHead while pHead!=None and pHead.next!=None: # 若是存在連續相等的節點,所有跳過(刪除) if pHead.val==pHead.next.val: val = pHead.val #利用val進行判斷 while pHead!=None and pHead.val==val: pHead = pHead.next p.next = pHead # 找到一個不存在連續相等的節點,更新p位置 else: p = pHead pHead = pHead.next return p0.next