反向打印链表

题目描述

输入一个链表,从尾到头打印链表每个节点的值。
采用栈的性质,将链表首先入栈,然后打印即可
代码:
import java.util.ArrayList;
import java.util.Stack;

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

public class printArrayList {

     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
         ArrayList<Integer> list = new ArrayList<Integer>();
         Stack<Integer> stack = new Stack<Integer>();
         while(listNode != null){
             stack.push(listNode.value);
             listNode = listNode.next;
         }
         while(!stack.isEmpty()){
             list.add(stack.pop());
         }
         return list;
     }
    /**
     * @param args
     */
    public static void main(String[] args) {
        //构造用例
        ListNode head = new ListNode(0);
        ListNode list1 = head;
        for(int i=1; i<10; i++){
            list1.next = new ListNode(i);
            list1 = list1.next;
        }
        
        ArrayList<Integer> output = new printArrayList().printListFromTailToHead(head);
        for(Integer i : output){
            System.out.print(i+" "); 
        }

    }

}
原文地址:https://www.cnblogs.com/feichangnice/p/7663262.html