首页 > 代码库 > 从尾到头打印链表
从尾到头打印链表
- 题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
- 输入:
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
- 输出:
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
- 样例输入:
1 2 3 4 5 -1
- 样例输出:
5 4 3 2 1
1.遍历链表,使用栈结构来存储链表元素。
2.链表出栈即从尾到头打印链表。
代码:
/******************************************** 从尾到头打印链表 by Rowandjj 2014/7/18 ********************************************/ #include<iostream> #include<stdlib.h> using namespace std; typedef struct _NODE_//单链表结点定义 { int data; struct _NODE_ *next; }Node,*pNode; typedef struct _STACK_//栈结构 { pNode head; int size; }Stack,*pStack; void InitStack(pStack stack) { pNode pNew = (Node*)malloc(sizeof(Node)); if(!pNew) { return; } pNew->next = NULL; stack->head = pNew; stack->size = 0; } void Push(pStack stack,int data) { pNode pNew = (Node*)malloc(sizeof(Node)); if(!pNew) { return; } pNew->data = http://www.mamicode.com/data;>解法2:递归就是简单啊!!#include<stdlib.h> #include<stdio.h> typedef struct _NODE_ { int data; struct _NODE_ *next; }Node,*pNode; //递归 从后往前遍历链表 void Reverse(pNode pHead) { if(pHead == NULL) { return; } if(pHead->next != NULL) { Reverse(pHead->next); } printf("%d\n",pHead->data); } int main() { pNode pHead; int data; scanf("%d",&data); if(data =http://www.mamicode.com/= -1)>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。