《剑指 offer》答案, 分析与笔记 Java 版
《剑指 offer》面试题 5: 从尾到头打印链表
书中方法一: 反转应该立刻想到栈, 利用一个栈完成链表的反转打印, 但是用了额外的 O(n) 空间.
- public void printFromTail(ListNode first){
- Stack<ListNode> stack = new Stack<ListNode>();
- while(first != null){
- stack.push(first);
- first = first.next;
- }
- while(!stack.isEmpty()){
- System.out.print(stack.pop().val);
- }
- }
书中方法二: 利用递归, 在递归中先调用递归, 后处理该节点, 达到了栈的效果.
- public void printFromTail2(ListNode first){
- if(first == null)return;
- printFromTail2(first.next);
- System.out.print(first.val);
- }
来源: http://www.bubuko.com/infodetail-3213550.html