[問題] linked list反轉出現問題....

看板C_and_CPP (C/C++)作者 (神手)時間16年前 (2009/05/11 19:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
#include<stdio.h> #include<malloc.h> struct data { int num; struct data *next; }; typedef struct data* link; link inver(link p) { link mid,last,temp=p; mid=NULL; while(temp!=NULL) { last=mid; mid=temp; temp=temp->next; mid->next=last; } return mid; } void listing(link p) { link cur=p; cur=inver(cur); while(cur!=NULL) { printf("%d",cur->num); cur=cur->next; } printf("\n"); } void main() { int i; link p,cur; p=(link)malloc(sizeof(struct data)); cur=p; scanf("%d",&cur->num); for(i=0;i<=1;i++) { cur->next=(link)malloc(sizeof(struct data)); cur=cur->next; scanf("%d",&cur->num); } cur->next=NULL; listing(p); (這邊我對p做兩次輸出結果不一樣 listing(p); 發現是因為反轉才產生這個問題 } 可是從程式碼裡我又看不出為什麼p會改變 懇請各位高手們解救一下QQ....) - ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.229.4 ※ 編輯: gs9706 來自: 140.134.229.4 (05/11 19:38) ※ 編輯: gs9706 來自: 140.134.229.4 (05/11 19:41)
文章代碼(AID): #1A20tcfJ (C_and_CPP)
文章代碼(AID): #1A20tcfJ (C_and_CPP)