倒序单链表

#include<stdio.h>
#include<stdlib.h>
struct link 
{
    int data;
    struct link *next;
};
struct link *invent(void);
void outp(struct link *head);
int main()
{
    struct link *head,*p;
    head=invent();
    p=head;
    outp(p);
    return 0;
}
struct link *invent (void)
{
    struct link *head=NULL,*tail,*new;
    int icount=0;
    while(1)
    {
        printf("请输入第%d个结点:",icount+1);
        new=(struct link *)malloc(sizeof(struct link));
        scanf("%d",&new->data );
        if(new->data ==-1)
        {
            free(new);
            return head;
        }
        else
        {
            icount++;
            if(icount  == 1)
            {
                head=tail=new;
                tail->next =NULL;
            }
            else
            {
                new->next=head;
                head=new;
            }
        }
    }
}
void outp(struct link *head)
{
    struct link *p=head;
    while(p)
    {
        printf("%d
",p->data);
        p=p->next;
    } 
}
原文地址:https://www.cnblogs.com/TX980502/p/6746551.html