剑指offer06:从尾到头打印链表
题目描述:
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 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:从尾到头打印链表相关推荐
- 剑指offer06.从尾到头打印链表
剑指offer06.从尾到头打印链表 1. 改变链表结构的解法 2.可以使用栈,递归,或者直接反向输出数组 提示: 若是面试遇到此题,最好先向面试官确认是否可以改变链表的结构, 1. 改变链表结构的解 ...
- JavaScript——leetcode剑指06 从尾到头打印链表
JavaScript--leetcode剑指06从尾到头打印链表 题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出: ...
- 剑指Offer 从尾到头打印链表
题目描述 输入一个链表,从尾到头打印链表每个节点的值. 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的"新链表"的表头 思路: 用容器vector,递归到最后一个元素, ...
- java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java
一.每次把新遍历的链表值放到list索引为0的位置,实现逆序. public class Solution { public ArrayList printListFromTailToHead(Lis ...
- 剑指offer5 从尾到头打印链表
错误代码: class Solution { public:vector<int> printListFromTailToHead(ListNode* head){vector<in ...
- 剑指offer-3 从尾到头打印链表
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) ...
- 【剑指Offer】从尾到头打印链表
剑指Offer 从尾到头打印链表 题目描述 解法1 实现代码 一点补充 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解法1 这道题主要思路是while循环从头遍历整个列 ...
- 【三种解法】剑指 Offer 06. 从尾到头打印链表【附完整可运行代码】
立志用最少的代码做最高效的表达 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表 ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
最新文章
- 【Design pattern】设计模式思路总结(二)
- python天气查询小程序加背景图_微信小程序开发背景图显示功能
- Ⅱ:zookeeper的相关shell命令
- java list 合并去重复_java 实现多个list 合并成一个去掉重复的案例
- 扩展、统计线性化和无迹RTS平滑器
- linux mysql插入中文乱码_Unix下Mysql插入中文出现乱码
- Windows FindFirstFile利用
- php模拟登陆正方教务系统csdn,curl模拟登陆正方教务系统查成绩,出现Object moved to here,已登陆首页获取cookie...
- SSH框架调用scrapy爬虫
- 重启tomcat服务器步骤
- 传智播客reactnative_传智播客黑马前端36期(2018年)
- 概率论考点之检验统计量(区间估计)
- 记录自已学习之ARM汇编语言之bic和orr
- template应用之Policies和Policy Classes
- 工控安全之系统加固篇
- 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
- android相机固定方向,如何正确设置Android相机方向?
- IE浏览器JSON未定义
- 苹果电脑macos Ventura 13.2(22D49)dmg原版引导版镜像下载
- 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果