九度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)-从尾到头输出链表[数据结构]

 

你可能感兴趣的:(链表)