要求
删除指定值
代码
#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
LNode* next;
}LNode, * LinkList;
LinkList InitList(LinkList& L,int n)
{
int x;
L = (LinkList)malloc(sizeof(LNode));
LNode* s, * r = L;
while (n )
{
cin >> x;
s = (LNode*)malloc(sizeof(LNode));
s->data = x;
r->next = s;
r = s;
n--;
}
r->next = NULL;
return L;
}
LinkList FindDel(LinkList& L, int x)
{
LNode* p = L->next, * q = L ;
while (p!=NULL)
{
if (p->data == x)
{
q->next = p->next;
free(p);
p = q->next;
}
else
{
p = p->next;
q = q->next;
}
}
return L;
}
void showLink(LinkList L)
{
LNode* p = L->next;
while (p)
{
cout << p->data << ' ';
p = p->next;
}
}
void deleteLink(LinkList& L)
{
LNode* p = L;
LNode* q = L;
while (p)
{
q = p->next;
free(p);
p = q;
}
}
int main()
{
int n;
cin >> n;
LinkList L;
InitList(L, n);
int x;
cin >> x;
FindDel(L, x);
showLink(L);
deleteLink(L);
return 0;
}