求救!!关于链表
想了很久了总是得不到预期的结果,哪位高手帮帮忙看看哪里出错了??谢谢!!!! 设计算法删除未排序单链表中和第一个元素相同的重复元素
#include "stdio.h"
#include "malloc.h"
typedef int DataType;
typedef struct node
{ DataType data;
struct node *next;
}ListNode;
ListNode *make()
{
ListNode *h,*p;
int x;
h=(ListNode *)malloc(sizeof(ListNode));
h->next=NULL;
scanf("%d",&x);
while(x!=0)
{
p=(ListNode *)malloc(sizeof(ListNode));
p->data=x;
p->next=h->next;
h->next=p;
scanf("%d",&x);
}
return h;
}
void print(ListNode *h)
{
ListNode *p;
p=h->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void dele(ListNode *h)
{
ListNode *p,*q,*r;
p=h->next;r=h->next;
while(p!=NULL)
{
q=p;
p=p->next;
if(p->data==r->data)
{
q->next=p->next;
p=q->next;
}
}
}
void main()
{
ListNode *H;
H=make();
print(H);
dele(H);
print(H);
}