83. Remove Duplicates from Sorted List
Question
Total Accepted: 102841 Total Submissions: 284006 Difficulty: Easy
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given1->1->2
, return 1->2
.Given 1->1->2->3->3
, return 1->2->3
.
to see which companies asked this question
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution {10 public:11 ListNode* deleteDuplicates(ListNode* head) {12 if(head == NULL || head->next == NULL) return head;13 ListNode* p1 = head->next;14 ListNode* p2 = head;15 while(p1 != NULL){16 if(p1->val == p2->val){17 p1 = p1->next;18 }19 else{20 p2->next = p1;21 p2 = p2->next;22 p2->val = p1->val;23 p1 = p1->next;24 }25 }26 p2->next = NULL;27 return head;28 }29 };