83. Remove Duplicates from Sorted List
My SubmissionsTotal Accepted: 102841 Total Submissions: 284006 Difficulty: Easy
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
.
Subscribe 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 };