实现(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70)
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}Node;
void IntiList(Node *H)
{
int n,e;
Node *q=H;
printf("请输入链表的长度:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
Node *p=(Node *)malloc(sizeof(Node));
printf("请输入结点的数据域:\n");
scanf("%d",&e);
p->data=e;
q->next=p;
q=p;
}
q->next=NULL;
}
void LinkTravese(Node *H)
{
Node *p;
p=H->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void fun(Node *H)
{
Node *p=H->next;
while(p)
{
while(p->data==p->next->data)
{
Node *q;
q=p->next;
p->next=q->next;
free(q);
}
p=p->next;
}
}
int main()
{
Node H;
IntiList(&H);
LinkTravese(&H);
fun(&H);
LinkTravese(&H);
return 0;
}
这段程序为什么实现不了,思想没什么问题啊