从尾到头打印链表

输入一个链表,从尾到头打印链表每个节点的值。

  

public class ListNode {
    public int data;
    public ListNode next = null;
    public ListNode(int data){
        this.data = data;
    
    }

 

public class searchLink {
    public ArrayList<Integer>printListFromTailToHead(ListNode listNode){
        if(listNode == null){
            ArrayList list = new ArrayList();
            return list;
        }
        Stack<Integer> stk = new Stack<Integer>();
        while(listNode != null){
            stk.push(listNode.data);
            listNode = listNode.next;
            }
        ArrayList<Integer> arr = new ArrayList<Integer>();
        while(!stk.isEmpty()){
            arr.add(stk.pop());
        }
        return arr;
    }
}

思路在于,借助栈的特点,先进后出。所以先压栈,堆栈,最后再弹栈到集合中就OK。

posted on 2015-11-03 10:32  松伯  阅读(202)  评论(0编辑  收藏  举报