Saturday, June 7, 2014

Leetcode (Python): Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

Solution:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    # @param head, a ListNode
    # @return a ListNode
    def deleteDuplicates(self, head):
        dummy = ListNode(0)
        list = dummy
        pointer = head
        while pointer!= None:
            if pointer.next != None and pointer.val == pointer.next.val:
                value = pointer.val;
                while pointer!= None and pointer.val == value:
                    pointer = pointer.next
            else:
                list.next = pointer
                list = list.next
                pointer = pointer.next
        list.next = None
        return dummy.next

No comments :

Post a Comment