Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil {
return head
}
fast := head.Next
slow := head
for fast != nil {
for fast != nil && slow.Val == fast.Val {
fast = fast.Next
}
slow.Next = fast
slow = slow.Next
}
return head
}
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if(head == None):
return head
curr = head
while(curr != None):
if(curr.next != None and curr.val == curr.next.val):
curr.next = curr.next.next
else:
curr = curr.next
return head