LeetCode:83.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.


C++ Solution:

/**
  * 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) {
         ListNode* current = head;
         ListNode* p;
         while(current!=NULL && current->next != NULL) {
             if (current->val == current->next->val) {
                 p = current->next;
                 current->next = p->next;
                 free(p);
                
             }
             else {
                 current= current->next;
             }
         }
        
         return head;
     }
};

posted @ 2017-09-26 19:29  YorkYu  阅读(127)  评论(0编辑  收藏  举报