Leetcode 83 Remove Duplicates from Sorted List
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if (head == NULL || head->next == NULL)
return head;
ListNode* begin = head;
ListNode* index = head->next;
while (index != NULL){
if (begin->val == index->val){
index = index->next;
}
else{
begin->next = index;
begin =index;
index = index->next;
}
}
begin->next = NULL;
return head;
}
};
//another version
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode* begin = head;
while (begin){
while (begin->next && begin->val == begin->next->val)
begin->next = begin->next->next;
begin = begin->next;
}
return head;
}
};