题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
示例
示例 1:
输入: 1->2->3->4
输出: [4,3,2,1]
解题
思路
先进后出首先想到的是栈,那么我们就可以使用虚拟机栈来做这件事,也就是递归来解决。
代码
public class PrintListFromTailToHead {
public static void main(String[] args) {
ListNode linkedList = LinkedListUtil.getLinkedList(new int[]{1, 2, 4, 2, 12, 4, 2, 23, 43});
System.out.println(printListFromTailToHead(linkedList));;
}
static ArrayList<Integer> list = new ArrayList<>();
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (Objects.nonNull(listNode)) {
printListFromTailToHead(listNode.next);
list.add(listNode.val);
}
return list;
}
}