Python :刪除鏈表中重複的節點


牛客網上的劍指 offer的在線編程:

題目描述:

在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表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 pHead is None or pHead.next is None:
            return pHead
        bhead = ListNode(pHead.val - 1)
        bhead.next = pHead
        first_node = bhead
        second_node = pHead
        while second_node and second_node.next:
            if second_node.val == second_node.next.val:
                del_val = second_node.val
                while second_node and (second_node.val == del_val):
                    second_node = second_node.next
                first_node.next = second_node
            else:
                first_node = first_node.next
                second_node = second_node.next
        return bhead.next


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章