题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
分析:相当于把链表反转过来,栈正好满足先进后出,所以把链表压人栈中,最后弹栈后加入集合。
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list=new ArrayList<>();
if(listNode==null){
return list;
}
Stack<Integer> stack=new Stack();
while(listNode!=null){
stack.push(listNode.val);
listNode=listNode.next;
}
while(!stack.isEmpty()){
list.add(stack.pop());
}
return list;
}
}