【剑指offer】面试题05:从尾到头打印链表
来源:互联网 发布:三得利乌龙茶 知乎 编辑:程序博客网 时间:2024/06/04 19:58
题目
输入一个链表,从尾到头打印链表每个节点的值。
思路
思路1:遍历链表,从尾到头打印。遍历是从头到尾,但输出却是从尾到头,“先进后出”,使用栈(Stack)实现。
思路2:递归。但是不建议使用,因为当链表非常长的时候,函数调用的层级很深,有可能导致函数调用栈溢出。
代码实现
1.思路1,使用栈实现。
/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }*/import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack = new Stack<Integer>(); ArrayList<Integer> list = new ArrayList<Integer>(); //遍历 while(listNode!=null){ stack.push(listNode.val);//入栈 listNode = listNode.next; } while(!stack.isEmpty()){ list.add(stack.pop()); //出栈,保存在list中 } return list; }}
2.思路2:递归版本。
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list = new ArrayList<Integer>(); if(listNode!=null){ printListFromTailToHead(listNode.next); list.add(listNode.val); } return list;}
注:运行环境:牛客网OJ
阅读全文
0 0
- 《剑指Offer》面试题:从尾到头打印链表
- 剑指offer面试题 从尾到头打印链表
- 面试题6:从尾到头打印链表(offer)
- 剑指offer-面试题05-从尾到头打印链表
- 【剑指offer】面试题05:从尾到头打印链表
- 剑指offer面试题5——链表之从尾到头打印链表
- 剑指offer-->面试题5 从尾到头打印链表
- [剑指offer][面试题5]从尾到头打印链表
- 【剑指offer】面试题5:从尾到头打印链表
- 剑指offer 面试题5 从尾到头打印链表(栈实现)
- 剑指offer 面试题5 从尾到头打印链表(递归实现)
- 【剑指offer】面试题5:从尾到头打印链表 java
- 剑指Offer: 面试题5 从尾到头打印链表
- 《剑指Offer》面试题5:从尾到头打印链表
- 剑指offer--面试题5:从尾到头打印链表--Java实现
- 【剑指Offer学习】【面试题5 : 从尾到头打印链表】
- 《剑指Offer》学习笔记--面试题5:从尾到头打印链表
- 【剑指offer】 面试题5: 从尾到头打印链表
- 计算机视觉三大顶级国际会议和国外知名期刊投稿
- C++/MFC-GDI主要对象(Bitmap、CBrush、CFont、CPalette、CPen和CRgn)
- 日常训练 20170602 B君的教育
- 图像处理-神奇的卷积核
- post,get区别
- 【剑指offer】面试题05:从尾到头打印链表
- MySQL数据库操作以及创建、修改和删除表
- make(4)
- spring中ClassPathXmlApplication和FileSystemXmlApplicationContext使用区别
- unity实现第一视角的跟随物体运动
- 前端基础笔记01
- lint_code 两数组的交
- 树莓派安装中文输入法SCIM
- 前端基础笔记02