剑指offer:从尾到头打印链表(java)
2016-09-29 10:23
363 查看
一般来说,我们会想到链表逆置,然后再从头打印,但这样会改变链表结构,如果面试官认可的话,则可以,否则还要更简便的方法。
1、使用栈
2、递归,但当链表非常长的时候,就会导致函数调用层级过深,从而导致函数调用栈溢出。
1、使用栈
/** * 从尾到头打印链表 * @param root */ public static void printReverseList(ListNode root){ if(root==null) return; ListNode node = root; Stack<ListNode> stack = new Stack<ListNode>(); while(node!=null){ stack.push(node); node = node.next; } while(!stack.isEmpty()){ int val = stack.pop().val; System.out.print(val+" "); } }
2、递归,但当链表非常长的时候,就会导致函数调用层级过深,从而导致函数调用栈溢出。
/** * 递归写法 * @param root */ public static void printReverseListRecursive(ListNode root){ if(root==null) return; if(root.next!=null) printReverseList(root.next); System.out.print(root.val+" "); }
相关文章推荐
- 《剑指offer》编程题java实现(三):从尾到头打印链表
- 剑指offer--面试题5:从尾到头打印链表--Java实现
- 剑指Offer面试题5(Java版):从尾到头打印链表
- JAVA实现从尾到头打印链表(《剑指offer》)
- 剑指Offer面试题5(Java版):从尾到头打印链表
- 剑指offer--从尾到头打印链表 java实现
- 《剑指offer》问题6 从尾到头打印链表 Java实现
- 剑指offer面试题6-从尾到头打印链表-java
- 剑指Offer(Java版):从尾到头打印链表
- 《剑指offer》牛客网java题解-从尾到头打印链表
- JAVA实现从尾到头打印链表(《剑指offer》)
- 《剑指Offer》学习笔记——从尾到头打印链表
- 牛客网-《剑指offer》-从尾到头打印链表
- java从尾到头打印链表
- 剑指Offer系列---(7)从尾到头打印链表
- 《剑指Offer》读书笔记03:从尾到头打印链表
- 《剑指offer》从尾到头打印链表
- 剑指offer(从尾到头打印链表)
- 剑指Offer—— 题5 从尾到头打印链表 Java版
- (剑指Offer)面试题5:从尾到头打印链表