九度oj_题目1511:从尾到头打印链表

来源:互联网 发布:三菱plc仿真软件汉化 编辑:程序博客网 时间:2024/04/30 02:48
题目1511:从尾到头打印链表

时间限制:1 秒

内存限制:128 兆

特殊判题:

提交:6589

解决:2003

题目描述:

输入一个链表,从尾到头打印链表每个节点的值。

输入:

每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。

输出:

对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。

样例输入:
12345-1
样例输出:
5432

1


链表创建:

typedef struct link{    int data;    struct link* next;}node;

申请头结点:

    node *head = NULL;    head = (node*)malloc(sizeof(node));    head->data = -1;    head->next = NULL;


本题链表逆序直接在存储时按逆序存储,然后顺序输出,每次申请一个新的p节点,赋data值后插入到head节点后边

#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct link{    int data;    struct link* next;}node;int main(){    node *head = NULL;    int a;    head = (node*)malloc(sizeof(node));    head->data = -1;    head->next = NULL;    scanf("%d",&a);    while(a != -1){        node *p = (node*)malloc(sizeof(node));        p->data = a;        p->next = head->next;        head->next = p;        scanf("%d",&a);    }    node *p = (node*)malloc(sizeof(node));    p = head->next;    while(p!= NULL){        printf("%d\n",p->data);        p = p->next;    }    return 0;}



0 0
原创粉丝点击