如链表中为(1,2,3,4,5),用户输入1,则结果应为(1,2,3,4)。这种情况实现不了,求大神解答
#include
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
void begin(LinkList &l)
{
l=new LNode;
l->next=NULL;
}
void Input(LinkList &l,int n)
{
LinkList r=l;
cout<<"请输入数据"<
for(int i=0;i
{
LinkList p=new LNode;
cin>>p->data;
p->next=l;
r->next=p;
r=p;
}
}
void remove(LinkList &l,LinkList &s)
{
LinkList p=s;
LinkList q;
while(p->next->next!=s)
{
p=p->next;
}
q=p->next;
p->next=s;
free(q);
}
void show(LinkList &l)
{
LinkList r=l->next;
while(r!=l)
{
cout<data<<" ";
r=r->next;
}
cout<<endl;
}
void main()
{
LinkList l,s;
begin(l);
begin(s);
LinkList r=l;
int n,m;
cout<<"请输入数据个数"<<endl;
cin>>n;
Input(l,n);
cout<<"请输入要删除数据的后一个数据"<<endl;
cin>>m;
for(int i=0;i<n;i++){
if(r->data!=m)
{
r=r->next;
}
s=r;
}
remove(l,s);
show(l);
}