为什么C语言遍历这里会无限循环?如图是程序和运行结果。程序要求逆序输出链表
答案:2 悬赏:10 手机版
解决时间 2021-03-20 18:24
- 提问者网友:趣果有间
- 2021-03-19 18:46
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-03-19 19:23
因为你从输入2开始往后,head->next就指向head自己了
最终你只有一个head节点,循环指向它自己,你遍历它就会一直循环了
最终你只有一个head节点,循环指向它自己,你遍历它就会一直循环了
全部回答
- 1楼网友:青灯有味
- 2021-03-19 19:45
#include
#include
typedef struct node
{
int num;
node* next;
}node,*link;
void creat(link &head)
{
link p,q;
head=new node[sizeof(node)];
q=head;
int i=1;
do
{
p=new node[sizeof(node)];
printf("请输入第%d个数:",i++); //结束标记为0
scanf("%d",&p->num);
if(p->num!=0)
{
q->next=p;
q=p;
}
}while(p->num!=0);
q->next=null;
}
void reserve(link &head)
{
if(head->next ==null)
return;
link pre, cur, ne;
pre=head->next;
cur=head->next;
while(cur)
{
ne = cur->next;
cur->next = pre;
pre = cur;
cur = ne;
}
head->next->next = null;
head->next = pre;
}
void show(link head)
{
link p=head->next;
while (p)
{
printf("%d ",p->num);
p=p->next;
}
printf("\n");
}
void main()
{
link head=null,p;
int i;
creat(head);
show(head);
printf("链表逆序:");
reserve(head);
show(head);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯