
#include <iostream>
#include <vector>
#include <string>
#include <malloc.h>
#include <stdio.h>
using namespace std;
typedef struct node
{
int data;
node *next;
}LNode,*LinkList;
void Create(LinkList *l,int n)//尾插法建立结点,注意建立过程中要让*l始终指向头结点
{
*l=(LinkList)malloc(sizeof(LNode));
scanf("%d", &((*l)->data));
(*l)->next=NULL;
LinkList q=(*l);//用另一个指针向下走
for(int i=1;i<=n-1;i++)
{
LinkList p;
p=(LNode *)malloc(sizeof(LNode));
scanf("%d", &(p->data));
p->next=NULL;
(q)->next=p;
(q)=p;
}
(q)->next=NULL;
}
LinkList Del(LinkList l,int Item)
{
LinkList tail;
while(l->data==Item)
{
l=l->next;
}//删除前面为Item的结点
tail=l;
while(l->next)
{
if(l->next->data==Item)
{
l->next=l->next->next;
}
else
l=l->next;
}
return tail;
}
void tranverse(LinkList l)
{
while(l->next!=NULL)
{
printf("%d ",l->data);
l=l->next;
}
printf("%d\n",l->data);
}
int main()
{
LinkList l;
int num;
cin >> num;
Create(&l,num);
int del;
cin >> del;
LinkList k=Del(l,del);
tranverse(k);
return 0;
}