Easy
65772FavoriteShare
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
C++:
/*
@Date : 2019-02-19 22:19:29
@Author : 酸饺子 (changzheng300@foxmail.com)
@Link : https://github.com/SourDumplings
@Version : $Id$
*/
/*
https://leetcode.com/problems/remove-duplicates-from-sorted-list/
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution
{
public:
ListNode* deleteDuplicates(ListNode* head)
{
if (head == NULL)
{
return head;
}
ListNode *f = head, *b = head->next;
while (b != NULL)
{
if (f->val == b->val)
{
ListNode *temp = b;
f->next = b->next;
delete temp;
}
else
f = b;
b = f->next;
}
return head;
}
};
Java:
/**
* @Date : 2019-02-19 22:26:44
* @Author : 酸饺子 (changzheng300@foxmail.com)
* @Link : https://github.com/SourDumplings
* @Version : $Id$
*
* https://leetcode.com/problems/remove-duplicates-from-sorted-list/
*/
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution
{
public ListNode deleteDuplicates(ListNode head)
{
if (head == null)
{
return head;
}
ListNode f = head, b = head.next;
while (b != null)
{
if (f.val == b.val)
{
f.next = b.next;
}
else
f = b;
b = f.next;
}
return head;
}
}