该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
题目要求是你输入a->b->c->d,然后存在内存里,然后改变在内存里的存储,改成存d->c->b->a,然后输出还是abcd,能不能就是用一个数组也存一份输入的,然后用数组修改链表里的内容为dcba,然后在倒置链表输出?求帮助修改
#include
#include
#define LEN sizeof(struct fuhao)
struct fuhao
{
char a;
struct fuhao *next;
};
int n;
struct fuhao *creat(void)
{
struct fuhao *head;
struct fuhao *p1,*p2;
n=0;
p1=p2=(struct fuhao *)malloc(sizeof(LEN));
scanf("%c",&p1->a);
head=NULL;
while(p1->a!=NULL)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct fuhao *)malloc(LEN);
scanf("%c",&p1->a);
}
p2->next=NULL;
return (head);
}
struct fuhao * reverse(struct fuhao *x)
{
struct fuhao *y;
struct fuhao *t;
struct fuhao *r;
if( NULL==x )
return NULL;
t=NULL;
r=NULL, y=x; //(0)
while(y!=NULL)
{
t = y->next; //(1)
y->next = r; //(2)
r = y; //(3)
y = t; //(4)
}
while(r)
{
printf("%c",r);
r=r->next;
}
}
int main()
{
struct fuhao *pt;
pt=creat();
reverse(pt);
}