题目描述:

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例 1:

输入:head = [1,3,2]
输出:[2,3,1]

解题思路:

从尾到头打印链表,优先考虑栈,因为想到栈是先进后出的。如果先反转链表再打印的话会破坏链表原来的结构,不建议。

  • 创建一个栈,用于存储链表的节点Stack<ListNode>;
  • 创建一个指针,初始时指向链表的头节点。

当指针指向的元素非空时,重复下列操作:

  • 将指针指向的节点压入栈内
  • 将指针移到当前节点的下一个节点

获得栈的大小 size,创建一个数组 print,其大小为 size

  • 创建下标并初始化 index = 0
  • 重复 size 次下列操作:
  • 从栈内弹出一个节点,将该节点的值存到 print[index]
  • 将 index 的值加 1
  • 返回 print

java代码:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public int[] reversePrint(ListNode head) {Stack<ListNode> stack=new Stack<>();ListNode cur=head;while(cur!=null){stack.push(cur);cur=cur.next;}int size=stack.size();int[] array=new int[size];for(int i=0;i<size;i++){array[i]=stack.pop().val;}return array;}
}

剑指offer06:从尾到头打印链表相关推荐

  1. 剑指offer06.从尾到头打印链表

    剑指offer06.从尾到头打印链表 1. 改变链表结构的解法 2.可以使用栈,递归,或者直接反向输出数组 提示: 若是面试遇到此题,最好先向面试官确认是否可以改变链表的结构, 1. 改变链表结构的解 ...

  2. JavaScript——leetcode剑指06 从尾到头打印链表

    JavaScript--leetcode剑指06从尾到头打印链表 题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出: ...

  3. 剑指Offer 从尾到头打印链表

    题目描述 输入一个链表,从尾到头打印链表每个节点的值. 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的"新链表"的表头 思路: 用容器vector,递归到最后一个元素, ...

  4. java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java

    一.每次把新遍历的链表值放到list索引为0的位置,实现逆序. public class Solution { public ArrayList printListFromTailToHead(Lis ...

  5. 剑指offer5 从尾到头打印链表

    错误代码: class Solution { public:vector<int> printListFromTailToHead(ListNode* head){vector<in ...

  6. 剑指offer-3 从尾到头打印链表

    /** *  struct ListNode { *        int val; *        struct ListNode *next; *        ListNode(int x) ...

  7. 【剑指Offer】从尾到头打印链表

    剑指Offer 从尾到头打印链表 题目描述 解法1 实现代码 一点补充 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解法1 这道题主要思路是while循环从头遍历整个列 ...

  8. 【三种解法】剑指 Offer 06. 从尾到头打印链表【附完整可运行代码】

    立志用最少的代码做最高效的表达 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表 ...

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

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

最新文章

  1. 【Design pattern】设计模式思路总结(二)
  2. python天气查询小程序加背景图_微信小程序开发背景图显示功能
  3. Ⅱ:zookeeper的相关shell命令
  4. java list 合并去重复_java 实现多个list 合并成一个去掉重复的案例
  5. 扩展、统计线性化和无迹RTS平滑器
  6. linux mysql插入中文乱码_Unix下Mysql插入中文出现乱码
  7. Windows FindFirstFile利用
  8. php模拟登陆正方教务系统csdn,curl模拟登陆正方教务系统查成绩,出现Object moved to here,已登陆首页获取cookie...
  9. SSH框架调用scrapy爬虫
  10. 重启tomcat服务器步骤
  11. 传智播客reactnative_传智播客黑马前端36期(2018年)
  12. 概率论考点之检验统计量(区间估计)
  13. 记录自已学习之ARM汇编语言之bic和orr
  14. template应用之Policies和Policy Classes
  15. 工控安全之系统加固篇
  16. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
  17. android相机固定方向,如何正确设置Android相机方向?
  18. IE浏览器JSON未定义
  19. 苹果电脑macos Ventura 13.2(22D49)dmg原版引导版镜像下载
  20. 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果

热门文章

  1. java 多线程 8 : 线程通信
  2. ActiveMq笔记3-AMQ高可用性理论
  3. MSSQL数据批量插入优化详细
  4. JavaScript:JavaScript语法的详细介绍
  5. VC++视频教程下载地址
  6. RTT的IPC机制篇——消息队列
  7. 日记背景 android,只是意外 - 用这些 APP 来记录生活,再也不用担心无法坚持写日记 - Android 应用 - 【最美应用】...
  8. oracle 12c dg搭建以及故障诊断
  9. 掌握这20个JS技巧,做一个不加班的前端人
  10. 视镜:华为云媒体质量管理最新实践