# 题目描述
输入一个链表,按链表值从尾到头的顺序返回一个 ArrayList。
# 代码实现
借助堆栈实现。
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> integerStack = new Stack<>();
while (listNode != null) {
integerStack.push(listNode.val);
listNode = listNode.next;
}
ArrayList<Integer> integerArrayList = new ArrayList<>();
while (!integerStack.isEmpty()) {
integerArrayList.add(integerStack.pop());
}
return integerArrayList;
}
借助递归实现。
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList arrayList = new ArrayList();
xx(arrayList, listNode);
return arrayList;
}
public void xx(ArrayList<Integer> arrayList, ListNode listNode) {
if (listNode != null) {
xx(arrayList, listNode.next);
arrayList.add(listNode.val);
}
}