Leetcode 83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appears only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
思路和在sorted array中去重差不多。注意L22如果不comment掉会出错。原因是,while head.next 要求list的长度至少为2。如果初始的list 是 1 -> 1 -> None。如果执行L22,那么head = None,while head.next 会出错。
1 # Definition for singly-linked list. 2 # class ListNode(object): 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 7 class Solution(object): 8 def deleteDuplicates(self, head): 9 """ 10 :type head: ListNode 11 :rtype: ListNode 12 """ 13 if head == None or head.next == None: 14 return head 15 16 dummy = head 17 while head.next: 18 if head.next.val != head.val: 19 head = head.next 20 else: 21 head.next = head.next.next 22 # head = head.next 23 return dummy