【劍指Offer】56刪除鏈表中重複的結點

題目描述

在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表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
相關文章
相關標籤/搜索