劍指Offer16——刪除鏈表中重複的結點

題目描述
在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表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):
        if  pHead is None:
            return None
        li = []
        p = phead= ListNode(0)
        while pHead:
            li.append(pHead.val)
            pHead = pHead.next
        for val in li :
            if li.count(val) == 1:
                p.next = ListNode(val)
                p = p.next
        return phead.next    #注意這裏的輸出啊,因爲phead是創建的一個值爲0的結點,但是原鏈表中是不存在這個結點的,所以要返回phead.next
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章