我很兴奋,做出了。虽然已经超出了虚拟OJ的两天时间,但还是把它弄出来了!这或许是很简单的问题,我很惭愧,竟然用了那么久!

#include "stdio.h"
#include "stdlib.h"
typedef struct Node
{
int data;
struct Node *next;
}slink;
slink *create_link(int n)  //新建链表
{
    int m,i;
    slink *head,*p,*q;
    head=NULL;
   for(i=0;i<n;i++)
   {
        p=(slink *)malloc(sizeof(slink));
        scanf("%d",&(p->data));
        if(head==NULL)
            q=head=p;
        else
            q->next=p;
        q=p;
    }
    p->next=NULL;
    return head;
}
void print_link(slink *p)   //输出链表
{
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
return;
}
slink *nizhi(slink *p)//逆置链表
{
    slink *q,*r;
    q=r=NULL;
    while(p)
    {
        q=p->next;
        p->next=r;
        r=p;
        p=q;
    }
    return r;
}
int main()
{
    int n;
    scanf("%d",&n);
print_link(nizhi(create_link(n)));
    return 0;
}
 

在此之前呢,尝试了很多,但大多都以error告终,里面的东西看起来很简单,其实明白了,也就是那么回事吧!

发表评论

电子邮件地址不会被公开。

Post Navigation