题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路分析
- 用一个辅助数组,遍历链表将元素存储在数组中,再逆序遍历数组将元素存在list中
- 优化些,用一个辅助栈,遍历时将元素压入栈,最后弹出进入list
- 再优化,用递归解法,先递归到最后一个元素,再将元素添加进list
代码实现
ArrayList<Integer> arrayList = new ArrayList<>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode != null) {
printListFromTailToHead(listNode.next);
arrayList.add(listNode.val);
}
return arrayList;
}