删除整数链表中的重复元素
#include<stdio.h>
#include<stdlib.h>
typedef struct date{
int num;
struct date *next;
} LinkList;
LinkList *creat(int n){
LinkList *head, *node, *end;//定义头节点,普通节点,尾部节点;
head = (LinkList*)malloc(sizeof(LinkList));//分配地址
end = head; //若是空链表则头尾节点一样
for (int i = 0; i < n; i++) {
node = (LinkList*)malloc(sizeof(LinkList));
scanf("%d", &node->num);
end->next = node;
end = node;
}
end->next = NULL;//结束创建
return head;
}
int main()
{
int n;
printf("请输入元素个数n:");
scanf("%d",&n);
if(n<1)
{
printf("个数不能小于1!");
return 0;
}
printf("请输入这n个元素:");
LinkList *a = creat(n);
LinkList *p = a->next;
while(p!=NULL)
{
LinkList *q = p;
LinkList *b = p->next;
while(b!=NULL)
{
if(b->num==p->num)
{
q->next = b->next;
b=q->next;
}
else
{
q=q->next;
b=b->next;
}
}
p=p->next;
}
LinkList *t = a->next;
while(t!=NULL)
{
printf("%d ",t->num);
t = t->next;
}
}