-
题目描述:
-
输入一个链表,从尾到头打印链表每个节点的值。
-
输入:
-
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
-
输出:
-
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
思路:
先创建链表,再递归从尾到头打印链表
代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct link
{
int data;
struct link *next;
}Node;
void Print(Node *head)
{
if(head->next == NULL)
return;
else
{
Print(head->next);
printf("%d\n",head->data);
}
}
int main()
{
int a;
Node *head,*p,*p1;
head = p = (Node *)malloc(sizeof(Node));
scanf("%d",&p->data);
while(p->data != -1)
{
p1 = p;
p = (Node *)malloc(sizeof(Node));
scanf("%d",&p->data);
p1->next = p;
}
p->next = NULL;
Print(head);
system("pause");
return 0;
}