九度OJ 1511 从尾到头打印链表
题目地址:http://ac.jobdu.com/problem.php?pid=1511
- 题目描述:
-
输入一个链表,从尾到头打印链表每个节点的值。
- 输入:
-
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
- 输出:
-
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
- 样例输入:
-
1 2 3 4 5 -1
- 样例输出:
-
5 4 3 2 1
#include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node * next; } Node; void Print_TailtoHead (Node * head){ Node * p = head; if (p != NULL){ Print_TailtoHead (p->next); printf ("%d\n", p->data); } } int main(void){ int input; Node * head = NULL; Node * p = NULL; Node * q = NULL; head = (Node *)malloc(sizeof(Node)); head->next = NULL; p = head; while (scanf ("%d", &input) != EOF && input != -1){ q = (Node *)malloc(sizeof(Node)); q->data = input; q->next = NULL; p->next = q; p = p->next; } Print_TailtoHead (head->next); return 0; }
参考资料:何海涛 -- 程序员面试题精选100题(31)-从尾到头输出链表[数据结构]