#include
#include
struct student
{
int num;
char name[15];
char clas[10];
char address[20];
struct student *next;
}
main()
{
struct student *head,*New,*p,*q;
int n,i,flag=1;
scanf("%d",&n);
head=New=(struct student *)malloc(sizeof(struct student));
scanf("%d %s %s %s",&New->num,New->name,New->clas,New->address);
for(i=0;i
{ New->next=(struct student *)malloc(sizeof(struct student));
New=New->next;
scanf("%d %s %s %s",&New->num,New->name,New->clas,New->address);
}
New=New->next=NULL;
free(New);
while(head!=NULL)
{
printf("%d %s %s %s\n",head->num,head->name,head->clas,head->address);
head=head->next;
}
q=head;
p=(struct student *)malloc(sizeof(struct student)); scanf("%d %s %s %s",&p->num,p->name,p->clas,p->address);
while(flag)
{
if(q->num==2)
{
q->next=p->next;
p->next=q;
flag=0;
}
q=q->next;
}
while(head!=NULL)
{
printf("%d %s %s %s\n",head->num,head->name,head->clas,head->address);
head=head->next;
}
}

把一个新节点插入到原链表中求大神看看哪错了
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- gracewyc 2017-06-08 01:52关注
你的输出那块错了,head=head->next; 已经把head移动了,所以head最后为NULL,已经找不到链表的头节点了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报