个站求访

首页_码到城攻码到城攻分享但不限于IT技术经验技巧、软硬资源、所闻所见所领会等,站点提供移动阅读、文章搜索、在线留言、支付打赏、个人中心、免签支付等功能https://www.codecomeon.com/index

这样的链表问题时不时的出现,你有没有特定的方法去处理呢:以下给出你可能用到的算法:

第一种:改变链表的结构

思想:

1.从尾到头打印链表,那就逆置链表呗

2.打印逆置后的链表;

这个简单,直接上代码:

void PrintListRevers(ListNode* pHead)
{//1.链表逆置ListNode* newHead = NULL;ListNode* cur = pHead;while (cur){ListNode* tmp = cur;cur = cur->m_pNext;tmp->m_pNext = newHead;newHead = tmp;}//2.打印逆置链表ListNode* tmp = newHead;while (tmp){cout << tmp->m_nValue << " ";}cout << endl;
}

很简单,但是,很不辛的改变了链表原来的结构 这是一种只做读操作不应该出现的,所以,有下边的算法;

方法二:借用栈

思想:

1.由于是从尾部开始打印,如果我们是从头开始遍历,那么先遍历的后打印,这正好的栈的特点。

2.遍历完了之后,所有节点入栈,之后出栈打印。

于是,下边简单的代码又出来了:

void PrintListRevers(ListNode* pHead)
{std::stack<ListNode*> nodes;ListNode* pNode = pHead;while(pNode != NULL){nodes.push(pNode);pNode = pNode->m_pNext;}while(!nodes.empty()){pNode = nodes.top();printf("%d\t", pNode->m_nValue);nodes.pop();}
}

方法三:递归

思想:

1.递归就是用栈的思想,既然能想到栈,递归也就想到了

代码:

void PrintListRevers(ListNode* pHead)
{if(pHead != NULL){if (pHead->m_pNext != NULL){PrintListRevers(pHead->m_pNext);}//printf很好控制打印格式printf("%d\t", pHead->m_nValue);}
}

但是,递归的缺点很明显,如果连边过长,就会造成栈溢出等问题,谨慎使用!

赐教.

从尾到头打印一个链表相关推荐

  1. 从尾到头打印单向链表

    需求: 给定一个单项链表的头结点,从尾到头打印链表中的节点的值. 分析: 思路一 由于从链表的结尾开始逆序打印,也就是说最后的节点先打印,联想到后进先出,可以使用栈来依次把链表节点保存起来,然后从新栈 ...

  2. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  3. 牛客网(剑指offer) 第三题 输入一个链表,从尾到头打印链表每个节点的值。

    //输入一个链表,从尾到头打印链表每个节点的值. //解题思路:遍历每一个节点  并将节点放入数组中 最后翻转数组 function printListFromTailToHead($head) {$ ...

  4. 链表怎么输出最后一个元素无空格_剑指offer系列----从尾到头打印链表

    从尾到头打印链表 信息卡片 时间:2020-03-23 题目:从尾到头打印链表 tag:list 题目描述 输入一个链表,按链表从尾到头的顺序返回一个 ArrayList. 01 调用 reverse ...

  5. 剑指offer:面试题06. 从尾到头打印链表

    题目:从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 & ...

  6. 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...

  7. 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java

    <LeetCode力扣练习>剑指 Offer 06. 从尾到头打印链表 Java 一.资源 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入: ...

  8. java从尾到头打印链表数据_Java编程实现从尾到头打印链表代码实例

    问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...

  9. JAVA实现从尾到头打印链表(《剑指offer》)

    最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...

最新文章

  1. MVP使用中不好的味道
  2. python学习笔记3—流程控制if、for、while
  3. ege函数库_基于c++ ege图形库实现五子棋游戏
  4. Visual C++——《可视化编程技术》实验报告——MFC编程
  5. linux拉取指定时间内,Linux 日期和时间操作详解
  6. python tornado 工程范例
  7. 如何使用工具进行线上 PHP 性能追踪及分析?
  8. deeplearning.ai——构建一个LR分类器来识别猫
  9. C# WinForm 基础教程
  10. 华为手机怎么把计算机放到桌面,将华为手机投影到计算机屏幕
  11. freessl申请ssl证书-笔记
  12. 多分辨率风场数据可视化
  13. Nginx-代理服务器
  14. html和js制作个人所得税表格,【JS】计算个人所得税(新版)
  15. 全新三维成像技术:我们离科幻故事里的立体投影又近了一步
  16. Windows键盘快捷方式
  17. Arnold阿诺德渲染器C4D插件安装及激活教程
  18. java functionex_Atitit. atiJavaExConverter4js  新的特性
  19. 图表制作中需要注意哪些问题:认识图表、选择图表
  20. 记录~OPENCV读图失败的三种情况,其中一种情况罕见

热门文章

  1. Metronic学习-1-替换google字体,让页面打开更流畅
  2. python数据变更邮件提醒_Python 路由器IP变更邮件通知
  3. php禁止视频自动播放,分享新浪视频禁止自动播放的方法
  4. 第一个Python程序-HelloWorld与Python解释器
  5. MySQL Study之--Mysql数据库备份工具(mysqldump)
  6. 漏洞修复引发的项目报错
  7. 什么是内网/局域网,局域网管控软件有什么用...
  8. R语言多项式线性模型:最大似然估计二次曲线
  9. Camera Boke背景虚化谷歌官方解释
  10. 市场营销策划书的设计与撰写