跪求 单链表编程 有赏!

来源:百度知道 编辑:UC知道 时间:2024/09/23 17:19:38
有一个单链表,其结点的数据域的值以非递减有序排列,编程实现删除该链表中多余的数据域值相同的结点。
急急急。非常急,我将倾囊而出!!!谢谢啦!
这个程序运行有错误呀!能帮忙改下吗??谢谢啦!!!

#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#define SIZE sizeof(a)
#define N 36
struct data{
int k;
data * p;
};
typedef struct data a;
a * head,*ap,*bp;
void createlink()//建立一个简单的链表
{
head=(a *)malloc(SIZE);
head->k=0;
ap=bp=head;
for(int i=N;i>=0;i--)
{
ap->p=(a *)malloc(SIZE);
ap=ap->p;
ap->k=1;
}
ap->p=NULL;
}
main()
{
createlink();
ap=head;
while(ap->p!=NULL)
{
bp=ap->p;
while(bp->k==ap->k)
{
ap->p=bp->p;
free(bp);
bp=ap->p;
if(bp==NULL)break;
}
if(ap->p==NULL)break;
ap=ap->p;
}
//输出结果
ap=head;
while(ap!=NULL)
{
printf("%d\n",ap->k);
ap=ap->p;
}
}

我自己运行了的呀,没有错,运行结果也是0 1?