Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
Solution:
Approach: "Building-block" methods: basic operation - Deleting node
current.next = current.next.next # remove 2nd duplicated node
# 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): #迭代版,时间复杂度O(n),空间复杂度O(1) current = head while current and current.next: if current.val == current.next.val: current.next = current.next.next # remove 2nd duplicated node else: current = current.next return head