-
题目描述:
-
输入一个链表,从尾到头打印链表每个节点的值。
-
输入:
-
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
-
输出:
-
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
-
样例输入:
-
1 2 3 4 5 -1
-
样例输出:
-
5 4 3 2 1
-
-
//双向链表 #include<stdio.h> #include<stdlib.h> typedef struct Lnode { int data; struct Lnode *prior; struct Lnode *next; } Lnode,*Link; int main() { int t; Link la,pa,p; la=(Link)malloc(sizeof(Lnode)); la->prior = la->next =NULL; pa=la; while(scanf("%d",&t) && t!=-1) { p=(Link)malloc(sizeof(Lnode)); p->data=t; p->next = pa->next; p->prior = pa; pa->next = p; pa=p; } while(pa->prior) { p=pa; printf("%d\n",p->data); pa=pa->prior; free(p); } free(la); return 0; }