将单链表逆序输出
对于单链表逆序输出不改变链表结构可以考虑使用递归实现。
递归输出的主要思路为:先输出除当前节点外的后继子链表,然后输出当前结点。假如链表为: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)。

单链表逆序输出(递归)相关推荐

  1. java单链表逆序输出_在数据结构单链表中如何实现倒序输出

    引用du瓶邪的回答: 如下: #include #include typedef struct node { int data; node* pNext; }Node; //链表的操作,以有头节点为例 ...

  2. c语言将一个已知头结点的单链表逆序_C语言实现单链表逆序与逆序输出实例

    单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序.本文就分别实例讲述一下两种方法.具体如下: 1.逆序输出 实例代码如下: #include #include #inc ...

  3. 通过迭代(非递归)及递归将单链表逆序

    通过迭代(非递归)及递归将单链表逆序 老生常谈的问题了,不过很多地方面试还是很喜欢问这个问题.实际工程中感觉用处不大,需要逆序的存储为什么要选择单链表呢?为什么不用list(in c++)或itera ...

  4. 单链表逆序生成及逆置的完整实现

    单链表逆序生成及逆置的完整实现 本例中单链表数据类型定义成int型,可更改 头文件1(1.h) 宏定义及Status类型定义 头文件2(2.h) 单链表基本操作函数与逆置函数 include" ...

  5. c语言单链表_C语言笔试题—单链表逆序

    前情回顾 之前更多的是给大家推荐的是好用的软件,经过反思之后觉得这些东西并不是我想要的,所以从今天开始我要转变方向了,更多的往我的专业方向去发展(虽然我是个小白),当然如果有说的不对的地方,希望大家能 ...

  6. 语言print如何实现连续输出_【每日一题】如何实现一个高效的单向链表逆序输出?...

    今后,动力节点Java学院将每天为大家带来一道大厂面试真题,这些面试题都是大厂技术专家们结合多年的工作.面试经验总结提炼而成的面试真题. 通过这些面试题,还可以间接地了解技术大牛们出题思路与考察要点. ...

  7. 数据结构:闲敲棋子落灯花之链表逆序输出Reverse

    链表逆序输出 首先,我们需要了解,逆序输出不是把数据对应位置改变,而是仅仅改变链接顺序. 方法一:迭代链表.使用循环,遍历链表,每一步,反转一个链接. 方法二:递归. 方法一: 过程:先使第一个结点指 ...

  8. 阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?

    面试,如同玩一场饥饿游戏:既要对环境了然于胸,又要对自身心知肚明.发现一个好工作不容易,但成功应聘又会面临一系列的挑战. 为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里 ...

  9. 数据结构:链表逆序输出

    数据结构(一):链表逆序输出 题目描述:创建一个链表,并将链表逆序输出,链表中以输入0作为结束 关键代码详解: 附:全部代码 #include<stdio.h> #include<s ...

最新文章

  1. Java中getResourceAsStream的用法
  2. 技术实践 | 聊聊网易云信的信令网络库实践
  3. udp与tcp协议介绍
  4. 教你如何去淘便宜机票
  5. hdu 六度分离 floyd
  6. Microsoft Azure Remoteapp使用自定义镜像创建桌面服务
  7. java ioc_Java体验IOC
  8. Keil(MDK-ARM-STM32)系列教程(七)菜单
  9. git 9个小命令(三年修仙五年摸鱼也有喔) 一条龙服务
  10. rpcbind服务说明及关闭
  11. 教育教学微课题研究方案——实习调研论文
  12. es6 三点运算符_ES6/ES7 三点式 —— 扩展运算符与剩余操作符
  13. Linux教程shell篇——黑马课程笔记
  14. java obd_XTOOL X100 PAD3通过OBD给2014 BMW CAS4 Key编程
  15. 工具(6): 开发神器
  16. sketchup 图片转模型_Sketchup位图转模型插件安装包及视频教程
  17. ipv6 dns修改方法
  18. Vulkan Programming Guide::Chapter1::Overview of VulKan(纵观VulKan)
  19. JSM jQuery插件开源
  20. numpy.reshape()函数

热门文章

  1. 图谱实战 | OPPO自研大规模知识图谱及其在小布助手中的应用
  2. 使用JDBC完成数据的增加
  3. iptables 打开dns访问端口
  4. 单向链表添加元素操作
  5. 5G非授权频谱技术与应用建议
  6. 小型图像数据集效果优化:使用预训练的CNN
  7. 基于单片机的智能鱼缸系统设计(#0471)
  8. 废旧光盘手工小制作_如何用废光碟制作DIY蜂鸟挂饰
  9. 内行才知道的大数据分析平台
  10. 关于阴阳学说和五行学说