建立长度为n的单链表,n>0,删除单链表中等于给定值的元素。数据类型指定为整型。
输入格式:
第一行为链表长度n;
第二行为链表中的n个数据元素的值;
第三行为需要删除的元素值。
输出格式:
输出为删除后的链表中的所有数据元素的值。
输入样例:
4
45 12 34 8
34
输出样例:
45 12 8
建立长度为n的单链表,n>0,删除单链表中等于给定值的元素。数据类型指定为整型。
输入格式:
第一行为链表长度n;
第二行为链表中的n个数据元素的值;
第三行为需要删除的元素值。
输出格式:
输出为删除后的链表中的所有数据元素的值。
输入样例:
4
45 12 34 8
34
输出样例:
45 12 8
供参考
#include <stdio.h>
typedef struct node
{
int n;
struct node *next;
}Node;
int main()
{
Node *head,*p,*q;
int n,t;
scanf("%d",&n);
q=head=(Node*)malloc(sizeof(Node));
head->next=NULL;
for(int i=0;i<n;i++)
{
scanf("%d",&t);
p=(Node*)malloc(sizeof(Node));
p->n=t;
p->next=NULL;
q->next=p;
q=p;
}
scanf("%d",&t);
q=head;
p=q->next;
while(p)
{
if(p->n==t)
{
q->next=p->next;
free(p);
p=q->next;
}
q=p;
p=q->next;
}
p=head->next;
while(p)
{
printf("%d ",p->n);
p=p->next;
}
return 0;
}