题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
分析:其实就是输入一盒链表(这个链表是ListNode类型的)。然后把他的元素取出来放进一个ArrayList集合中(ListNode和ArrayList看起来相似。但是不是一样的。前者是一个链表数据结构,后者是数组型集合,相似但不一样)。所以从ListNode到ArrayList就需要一个中间容器来存储ListNode里的元素,由于是倒叙,这里很自然想到了栈。
import java.util.ArrayList;
import java.util.Stack;
public class ListNode{
int val;
ListNode next;
ListNode(int val){
this val=val;
}
}
public calss Solution{
public ArrayList<Integer> printListFromTailToHead(ListNode listnode){
Stack<Integer> stack=new Stack<Integer>();
ArrayList<ArrayList> list=new ArrayList<Integer>();
while(listnode!=null){
stack.push(listnode.val);
listnode=listnode.next;
}
while(!stack.isEmpty()){
list.add(stack.pop());
}
retuen list;
}
}