给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序 排列来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
#include<bits/stdc++.h>
using namespace std;
typedef struct LNode{
int data;
LNode *next;
}LNode,*Linklist;
//尾插
Linklist List_TailInsert(Linklist &L){
L=(Linklist)malloc(sizeof(LNode));
LNode *s,*r=L;
int x;
cin>>x;
while(x!=9999)
{
s=(Linklist)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
cin>>x;
}
r->next=NULL;
return L;
}
Linklist deleteDuplicates(Linklist &L){
if(!L)
{
return L;
}
LNode *p=L;
while(p->next!=NULL)
{
if(p->data==p->next->data)
{
p->next=p->next->next;
}
else
{
p=p->next;
}
}
return L;
}
void print(Linklist &L)
{
LNode *p=L->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int main(){
Linklist l;
List_TailInsert(l);
deleteDuplicates(l);
print(l);
}