题目描述
输入一个链表,从尾到头打印链表每个节点的值。
采用栈的性质,将链表首先入栈,然后打印即可
代码:
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+" "); } } }