leetcode 83. Remove Duplicates from Sorted List

传送门

 

83. Remove Duplicates from Sorted List

My Submissions
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,
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

Hide Tags
 Linked List
 
 
 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 };

 

posted on 2016-02-26 17:00  njczy2010  阅读(157)  评论(0编辑  收藏  举报