83. Remove Duplicates from Sorted List

Posted lvbbg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了83. Remove Duplicates from Sorted List相关的知识,希望对你有一定的参考价值。

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.

 

pre指针在后

cur向前扫,扫到不重复的就让节点和pre指向的ListNode连在一起,扫到重复的就继续扫,直到不重复的时候,再和pre指向的ListNode连接

效果是:重新连了一遍,扔掉了重复的节点

 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 
10 class Solution {
11 public:
12     ListNode *deleteDuplicates(ListNode *head) {
13         if(head==NULL||head->next==NULL)
14             return head;
15         
16         ListNode* pre=head;
17         ListNode* cur=head->next;
18         
19         while(cur!=NULL){
20             if(cur->val==pre->val) {
21                 cur=cur->next;
22             }else{
23                 pre->next=cur;
24                 pre=cur;
25                 cur=cur->next;
26             }
27         }
28         pre->next=NULL;
29         return head;
30     }
31 };

 

以上是关于83. Remove Duplicates from Sorted List的主要内容,如果未能解决你的问题,请参考以下文章

83. Remove Duplicates from Sorted List

83. Remove Duplicates from Sorted Listeasy

83. Remove Duplicates from Sorted List

83. Remove Duplicates from Sorted List

LeetCode 83. Remove Duplicates from Sorted List

LC_83. Remove Duplicates from Sorted List