从尾到头打印链表(java)
来源:互联网 发布:angular copy源码 编辑:程序博客网 时间:2024/05/30 23:02
1.问题描述
输入一个链表,从尾到头打印链表每个节点的值。
2.算法分析
方案一(非递归版):构造一个栈,将链表中所有元素存入栈中,然后使用该栈构造ArrayList
方案二(递归版):在顺序遍历链表的同时不断调用自身同时将各个节点的值存入数组中,由于递归程序先执行最底层的被调用程序,所以节点的值逆序保存在数组中
3.算法设计
方案一:
定义数据结构:
(1)Stack stack 用于保存链表中的元素
(2)ArrayLIst<Integer> list ,通过stack构造该list
步骤:
step1.遍历链表,同时将各节点值保存至stack
step2.弹出stack中所有元素,同时构造list数组
方案二:
定义数据结构:ArrayList<Integer> list
步骤:遍历链表时,调用自身同时将节点值保存到list中
4.编码实现
方案一:
<pre name="code" class="java"> public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode == null) return null; Stack<Integer> stack = new Stack<Integer>(); ListNode pListNode = listNode; while(pListNode != null){ stack.push(pListNode.value); pListNode = pListNode.next; } ArrayList<Integer> arrayList = new ArrayList<Integer>(); while(!stack.isEmpty()){ arrayList.add(stack.pop()); } return arrayList; }
方案二:
public class Solution { ArrayList<Integer> arrayList=new ArrayList<Integer>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode!=null){ this.printListFromTailToHead(listNode.next); arrayList.add(listNode.val); } return arrayList; }}
0 0
- java从尾到头打印链表
- 从尾到头打印链表(java)
- 从尾到头打印链表(java)
- 从尾到头打印链表(Java)
- 剑指offer题解【从尾到头打印链表】-java
- 剑指offer-Java-从尾到头打印链表
- 剑指offer:从尾到头打印链表(java)
- 剑指offer-----从尾到头打印链表(java版)
- Java算法-剑指offer-从尾到头打印链表
- 从尾到头打印链表(java版)
- 从尾到头打印链表java实现
- (转)java语言:从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 从尾到头打印链表
- 1、从尾到头打印链表
- 从尾到头打印链表
- node.js技能
- 给EditText添加一个为空的时候抖动的动画
- Jerasure库接口简介及性能测试
- 不安装oracle客户端,用plsql连接oracle
- Gradle构建基础
- 从尾到头打印链表(java)
- URL_MODEL=>'2' 的情况linux的U方法用不了,为1linux下可以正常使用链接跳转
- --取操作系统语言类型
- Source Insight (project/context window)窗口嵌入
- HDU 2089(数位DP)
- Macos 安装md5sum、sha1sum、md5deep、sha1deep
- 链表总结
- linux uname命令
- 量化交易