直接利用栈的性质辅去解答就完事儿
知识点:
栈:栈是一种仅支持在表尾进行插入和删除操作的线性表,这一端被称为栈顶,另一端被称为栈底。元素入栈指的是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;元素出栈指的是从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//创建动态数组res和栈来辅助
ArrayList<Integer> res = new ArrayList<Integer>();
Stack<Integer> s = new Stack<Integer>();
//把节点的值压进栈
while (listNode != null) {
s.push(listNode.val);
listNode = listNode.next;
}
//出栈
while (s.size() != 0) {
res.add(s.pop());
}
return res;
}
}