剑指Offer刷题(三) 从头到尾打印链表
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
解题思路:
因为要求从尾到头逆序输出,首先会想到使用后进先出的栈结构。把链表里的结点的值从头到尾压入栈,然后依次弹出即可。
代码:
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> res = new ArrayList<>();
Stack<Integer> s = new Stack<>();
while(listNode!=null) {
s.push(listNode.val);
listNode = listNode.next;
}
while(!s.isEmpty()) {
res.add(s.pop());
}
//System.out.println(res);
return res;
}
}