原题地址
链表的基础操作,自己不会,记录一下,别人代码
#include<bits/stdc++.h>
using namespace std;//写C的同学改一下头文件即可
typedef struct node
{
int data;
struct node*next;
}tree;
int main()
{
struct node*head,*p,*q,*w;
head=new tree;
// head=(struct node*)malloc(sizeof(struct node));//C语言的结点开辟新空间的语句
head->next=NULL;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
p=new tree;
// p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=head->next;
head->next=p;
}
printf("%d\n",n);
p=head->next;
while(p)
{
if(p->next==NULL)
{
printf("%d\n",p->data);
}
else
{
printf("%d ",p->data);
}
p=p->next;
}
p=head->next;
while(p)
{
q=p;
w=q->next;
while(w)
{
if(w->data==p->data)
{
n--;
q->next=w->next;
w=w->next;
}
else
{
q=w;
w=w->next;
}
}
p=p->next;
}
printf("%d\n",n);
p=head->next;
while(p)
{
if(p->next==NULL)
{
printf("%d\n",p->data);
}
else
{
printf("%d ",p->data);
}
p=p->next;
}
return 0;
}