《剑指Offer》题目——从尾到头打印链表

Posted VictorWei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《剑指Offer》题目——从尾到头打印链表相关的知识,希望对你有一定的参考价值。

题目描述:输入一个链表,从尾到头打印链表每个节点的值。

题目分析:用栈;Java用Stack不如用Deque接口,原因可以见链接:http://stackoverflow.com/questions/12524826/why-should-i-use-deque-over-stack

public class ReverseList {
    class ListNode{
        int val;
        ListNode next = null;

        ListNode(int val){
            this.val = val;
        }
    }
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack = new Stack<Integer>();
        ArrayList<Integer> list = new ArrayList<Integer>();

        //注意这里while循环结束的条件是listNode不为空,而不是listNode.next不为空
        while (listNode!=null){
            stack.push(listNode.val);
            listNode = listNode.next;
        }
        while (!stack.empty()){
            list.add(stack.pop());
        }
        return list;
    }
    public static void main(String[] args){

    }
}

 

以上是关于《剑指Offer》题目——从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章

从尾到头打印链表-剑指Offer

《剑指Offer》题目——从尾到头打印链表

《剑指offer》— JavaScript从尾到头打印链表

剑指offer从尾到头打印链表

剑指offer替换空格从尾到头打印链表

剑指offer系列刷题第二篇——从尾到头打印链表和反转链表