首页 > 代码库 > 第五十八题(从尾到头输出链表)
第五十八题(从尾到头输出链表)
58.从尾到头输出链表。
题目:输入一个链表的头结点,从尾到头反过来输出每一个结点的值。
思路:题不难,提供几种思路
1.使用栈的先进后出特性实现,遍历链表元素依次入栈,再出栈就可以达到目的
2.使用数组先暂存顺序遍历的结果,再对数组反向遍历就可以。
3.递归,也就是这里採用的方法。
C++代码:
#include "stdafx.h" #include<ctime> #include<iostream> namespace MS100P_58 { void reversePrintList(node* p) { if (p == NULL) return; reversePrintList(p->next); cout << p->data << ‘ ‘; } void test() { node *head = createList(20); printList(head); reversePrintList(head->next); cout << endl; deleteList(head); } } int _tmain(int argc, _TCHAR* argv[]) { MS100P_58::test(); return 0; }
执行结果:
附測试代码中用到的创建,打印,删除链表的函数
struct node { int data; node* next; }; node* createList(int len) //创建链表 { node* head = new node(); node* pCurrent = head; srand(time(0)); for (int i = 0; i < len; i++) { pCurrent->next = new node(); pCurrent = pCurrent->next; pCurrent->data = http://www.mamicode.com/rand() % 100;>
第五十八题(从尾到头输出链表)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。