剑指Offer(第二版)面试题6:从尾到头打印链表

来源:互联网 发布:openstack 源码分析 编辑:程序博客网 时间:2024/05/17 07:39


(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/71598318冷血之心的博客)


剑指Offer面试题6:从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。


这题确实比较简单,第一想到的应该就是使用后进先出的堆栈来实现了,既然用到了堆栈,顺便还可以用递归来实现。

如果允许改变链表的结构,你还可以反转链表,然后再依次输出各个节点(感觉没有必要)


/** * 从尾到头打印链表 */private static void reversePrint(Node head){if(head==null)return;Stack<Node> stack = new Stack<>();Node cur = head;while(cur!=null){stack.push(cur);cur = cur.next;}while(!stack.isEmpty()){System.out.print(stack.pop().val+" ");}}


/** * 递归解法 * @param head */private static void reversePrintRec(Node head){if(head==null)return;else{reversePrintRec(head.next);System.out.print(head.val+" ");}/*if(head==null)return;if(head.next!=null){reversePrintRec(head.next);System.out.println(head.val);}else {System.out.println(head.val);}*/}


如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~





1 0