永发信息网

为什么C语言遍历这里会无限循环?如图是程序和运行结果。程序要求逆序输出链表

答案:2  悬赏:10  手机版
解决时间 2021-03-20 18:24
  • 提问者网友:趣果有间
  • 2021-03-19 18:46







最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-03-19 19:23
因为你从输入2开始往后,head->next就指向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); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯