剑指offer第3题:从尾到头打印链表
2017-12-04 11:50
363 查看
方法一:采用栈来存储,用ArrayList保存。注意题目给出的输出结果是ArrayList
import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack=new Stack<>(); ArrayList<Integer> arrayList=new ArrayList<>(); while (listNode!=null){ stack.push(listNode.val); listNode=listNode.next; } while (!stack.isEmpty()){ arrayList.add(stack.pop()); } return arrayList; } } class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }
方法二: 递归在本质上是一个栈结构,于是很自然的想到了用递归来实现。注意 ArrayList的创建要在函数的外面,不然每次又去重新创建了该对象,导致最后只有一个元素。static加上去出错,至于原因我还要再看一下。
import java.util.ArrayList; public class Solution { ArrayList<Integer> arrayList=new ArrayList<>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode!=null){ if(listNode.next!=null){ printListFromTailToHead(listNode.next); } arrayList.add(listNode.val); } return arrayList; } }
加入在前面加入static之后的结果:在IDE里面是可以跑通的,另外,把static的变量放入方法里面是会有语法错误的(Java有,c、c++没有错误)
相关文章推荐
- 剑指offer-输入一个链表,从尾到头打印链表每个节点的值
- 剑指offer:从尾到头打印链表
- 剑指Offer面试题6:从尾到头打印链表
- 剑指offer面试题5:从尾到头打印链表
- 《剑指offer》面试题5—从尾到头打印链表
- 剑指Offer(Java版):从尾到头打印链表
- 《剑指Offer》读书笔记03:从尾到头打印链表
- 《剑指offer》编程题java实现(三):从尾到头打印链表
- 从尾到头打印链表——剑指Offer
- 剑指offer(三)从尾到头打印链表
- 剑指Offer(三)从尾到头打印链表 标签: 链表
- 《剑指offer》——从尾到头打印链表
- 《剑指Offer》面试题5:从尾到头打印链表
- 《剑指offer》面试题5:从尾到头打印链表
- 《剑指offer》---从尾到头打印链表 和 重建二叉树
- 剑指Offer——(3)从尾到头打印链表
- 《剑指offer》【面试题5:从尾到头打印链表】
- 剑指offer系列之一:从尾到头打印链表
- 剑指offer 从尾到头打印链表
- 剑指offer--从尾到头打印链表