给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据递增有序链接。函数 fun 的功能是删除链表中数据域值相同的结点,使之只保留一个。
#include<stdio.h>
#include<stdlib.h>
#define N 7
typedef struct list {
int data;
struct list *next;
}SLIST;
void fun(SLIST *h){
SLIST *p,*q;
p=h->next;
if(p!=NULL){
q=p->next;
while(q!=NULL){
if (p->data==q->data){
p->next=q->next;
/**********found**********/
free(q);
/**********found**********/
q=p->next;
} else{
p=q;
/**********found**********/
q=q->next;
}
}
}<