[問題] linked list反轉出現問題....
#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)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章