单链表逆序输出(递归)
将单链表逆序输出
对于单链表逆序输出不改变链表结构可以考虑使用递归实现。
递归输出的主要思路为:先输出除当前节点外的后继子链表,然后输出当前结点。假如链表为:1->2->3->4->5->6->7,那么就先输出2->3->4->5->6->7,再输出1。同理,对于链表2->3->4->5->6->7,也是先输出3->4->5->6->7,接着输出2,直到遍历到链表的最后一个结点7的时候会输出结点7,然后递归地输出6,5,4,3,2,1。
实现代码如下:
#include <bits/stdc++.h>#define readup ios::sync_with_stdio(0)using namespace std;typedef struct LNode
{int data;struct LNode *next;
}LNode,*LinkList;void ReversePrint(LinkList firstNode)
{if(firstNode==NULL)return;ReversePrint(firstNode->next);cout<<firstNode->data<<' ';
}int main()
{int n;cin>>n;LinkList head=(LinkList)malloc(sizeof(LNode));head->next=NULL;LinkList tmp=NULL;LinkList cur=head;for(int i=1;i<=n;i++){tmp=(LinkList)malloc(sizeof(LNode));cin>>tmp->data;tmp->next=NULL;cur->next=tmp;cur=tmp;}//cout<<"顺序输出:";for(cur=head->next;cur;cur=cur->next)cout<<cur->data<<' ';cout<<endl;//cout<<"逆序输出:";ReversePrint(head->next);for(cur=head->next;cur;){tmp=cur;cur=cur->next;free(tmp);}return 0;
}
算法性能:只需要都链表进行一次遍历,因此时间复杂度为O(n)。
单链表逆序输出(递归)相关推荐
- java单链表逆序输出_在数据结构单链表中如何实现倒序输出
引用du瓶邪的回答: 如下: #include #include typedef struct node { int data; node* pNext; }Node; //链表的操作,以有头节点为例 ...
- c语言将一个已知头结点的单链表逆序_C语言实现单链表逆序与逆序输出实例
单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序.本文就分别实例讲述一下两种方法.具体如下: 1.逆序输出 实例代码如下: #include #include #inc ...
- 通过迭代(非递归)及递归将单链表逆序
通过迭代(非递归)及递归将单链表逆序 老生常谈的问题了,不过很多地方面试还是很喜欢问这个问题.实际工程中感觉用处不大,需要逆序的存储为什么要选择单链表呢?为什么不用list(in c++)或itera ...
- 单链表逆序生成及逆置的完整实现
单链表逆序生成及逆置的完整实现 本例中单链表数据类型定义成int型,可更改 头文件1(1.h) 宏定义及Status类型定义 头文件2(2.h) 单链表基本操作函数与逆置函数 include" ...
- c语言单链表_C语言笔试题—单链表逆序
前情回顾 之前更多的是给大家推荐的是好用的软件,经过反思之后觉得这些东西并不是我想要的,所以从今天开始我要转变方向了,更多的往我的专业方向去发展(虽然我是个小白),当然如果有说的不对的地方,希望大家能 ...
- 语言print如何实现连续输出_【每日一题】如何实现一个高效的单向链表逆序输出?...
今后,动力节点Java学院将每天为大家带来一道大厂面试真题,这些面试题都是大厂技术专家们结合多年的工作.面试经验总结提炼而成的面试真题. 通过这些面试题,还可以间接地了解技术大牛们出题思路与考察要点. ...
- 数据结构:闲敲棋子落灯花之链表逆序输出Reverse
链表逆序输出 首先,我们需要了解,逆序输出不是把数据对应位置改变,而是仅仅改变链接顺序. 方法一:迭代链表.使用循环,遍历链表,每一步,反转一个链接. 方法二:递归. 方法一: 过程:先使第一个结点指 ...
- 阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?
面试,如同玩一场饥饿游戏:既要对环境了然于胸,又要对自身心知肚明.发现一个好工作不容易,但成功应聘又会面临一系列的挑战. 为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里 ...
- 数据结构:链表逆序输出
数据结构(一):链表逆序输出 题目描述:创建一个链表,并将链表逆序输出,链表中以输入0作为结束 关键代码详解: 附:全部代码 #include<stdio.h> #include<s ...
最新文章
- Java中getResourceAsStream的用法
- 技术实践 | 聊聊网易云信的信令网络库实践
- udp与tcp协议介绍
- 教你如何去淘便宜机票
- hdu 六度分离 floyd
- Microsoft Azure Remoteapp使用自定义镜像创建桌面服务
- java ioc_Java体验IOC
- Keil(MDK-ARM-STM32)系列教程(七)菜单
- git 9个小命令(三年修仙五年摸鱼也有喔) 一条龙服务
- rpcbind服务说明及关闭
- 教育教学微课题研究方案——实习调研论文
- es6 三点运算符_ES6/ES7 三点式 —— 扩展运算符与剩余操作符
- Linux教程shell篇——黑马课程笔记
- java obd_XTOOL X100 PAD3通过OBD给2014 BMW CAS4 Key编程
- 工具(6): 开发神器
- sketchup 图片转模型_Sketchup位图转模型插件安装包及视频教程
- ipv6 dns修改方法
- Vulkan Programming Guide::Chapter1::Overview of VulKan(纵观VulKan)
- JSM jQuery插件开源
- numpy.reshape()函数