- 为什么在链表特定位置插入不了节点?(求解,问题到底出在什么地方?谢谢解答)
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef struct _node{
struct _node *next;
int data;
} Node;
Node * Makelist()
{
Node *last,*head,*p;
head=NULL;
last=head;
int x;
do
{
cin>>x;
p=(Node *)malloc(sizeof(Node*));
p->data=x;
if(head)
{
last->next=p;
p->next=NULL;
last=p;
}
else
{
head=p;
p->next=NULL;
last=p;
}
}while(x!=-1);
free(p);
return head;
}
Node* add_dnate(Node *L,int a,int e)//L表示链表,a表示要插入的位置,e表示插入的数字
{
Node *q=L;
int i=0;
while(q&&i<a-1){
q=q->next;
i++;
}
if(q||i>a-1)
return 0;
else
{
Node *p=(Node*)malloc(sizeof(Node*));
p->data=e;
p->next=q->next;
q->next=p;
return L;
}
}
int main()
{
Node *t = Makelist();
while(t)
{
cout<<t->data;
t=t->next;
}
int a,n;cin>>n>>a;
Node *i=add_dnate(t,n,a);
while(i)
{
cout<<i->data;
i=i->next;
}
return 0;
}