设计在单链表中删除值相同的多余结点的算法

代码如下:

typedef int datatype;
typedef struct node{datatype data;struct node *next}lklist;
void del(lklist *head)
{
	lklist *p,*q,*s;
	p=head->next;
	while(p!=0 && p->next!=0)
	{
		s=p;
		q=p->next;
		while(q!=0)
		{
			if(p->data==q->data)
			{
				s->next=q->next;
				free(q);
				q=s->next;
			}else{
				s=q;
				q=q->next;
			}
		}
		p=p->next;
	}
}

你可能感兴趣的:(代码编程,假技术po主)