题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路
采用递归:
若当前节点不为空,则递归其后继节点,并将当前节点加入list中。
采用数据结构栈实现:
利用栈“后进先出”特性
利用ArrayList的public void add(int index, E element):
从前往后遍历,每次插在list的最前面位置。
//递归
public class ListNode {
public int val;
public ListNode next = null;
public ListNode(int val) {
this.val = val;
}
}
public static ArrayList<Integer> printListFromTailToHead(ArrayList<Integer> list, ListNode listNode) {
if (listNode != null) {
printListFromTailToHead(list, listNode.next);
list.add(listNode.val);
}
return list;
}