《剑指offer》编程题java实现(三):从尾到头打印链表
2018-03-05 13:31
645 查看
问题描述:
输入一个链表,从尾到头打印链表每个节点的值。
输入一个链表,从尾到头打印链表每个节点的值。
思路一:
import java.util.ArrayList; import java.util.Stack; import com.nowcoder.ListNode; /** * * @author sk *思路一:使用栈先进后出的特点,先将链表中的值,从头到尾依次压入,然后再从尾到头依次弹出到数组中, *返回数组即可 */ public class Demo3 { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> arr=new ArrayList<>(); //链表为空 if (listNode==null) { return arr; } Stack<Integer> stack=new Stack<>(); //对listnode遍历 while(listNode!=null) { stack.push(listNode.val); listNode=listNode.next; } while (!stack.isEmpty()) { arr.add(stack.pop()); } return arr; } }
思路二
import java.util.ArrayList; /** * * @author sk *思路二:采用递归,递归本质上也是一个栈结构,但是如果链表很长,就会导致调用的层级很深,有可能导致函数栈溢出,所以还是采用思路一 */ public class Demo3_1 { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> arr = new ArrayList<>(); if (listNode != null) { while (listNode.next != null) { printListFromTailToHead(li 4000 stNode.next); arr.add(listNode.val); } } return arr; } }
相关文章推荐
- 剑指offer编程题Java实现——面试题5从头到尾打印链表
- JAVA实现从尾到头打印链表(《剑指offer》)
- JAVA实现从尾到头打印链表(《剑指offer》)
- 剑指offer--面试题5:从尾到头打印链表--Java实现
- 《剑指offer》问题6 从尾到头打印链表 Java实现
- 剑指offer--从尾到头打印链表 java实现
- 剑指offer|面试题5:从尾到头打印链表(Java实现)
- 数据结构与算法分析笔记与总结(java实现)--链表1:从尾到头打印链表值问题
- 《剑指offer》编程题java实现(十七):合并两个排序的链表
- 剑指offer 面试题5 从尾到头打印链表(栈实现)
- 《剑指offer》编程题java实现(十三):反转链表
- 《剑指offer》编程题java实现(五):链表中倒数第k个字节
- 《剑指offer》编程题java实现(十八):删除链表的结点
- 剑指offer:从尾到头打印链表(java)
- 剑指Offer面试题5(Java版):从尾到头打印链表
- (PHP实现剑指offer)输入一个链表,从尾到头打印链表每个节点的值。
- 剑指Offer:面试题5——从尾到头打印链表(java实现)
- 从尾到头打印链表java实现
- 剑指Offer(Java版):从尾到头打印链表
- java实现——005从尾到头打印链表