这题如果做过反转链表的话,简直就是送分题。
先用递归做嘛,利用递归天生的栈结构,搜到底层然后回溯时添加进list。
import java.util.ArrayList;
import java.util.List;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
printListFromTailToHead(listNode,list);
return list;
}
private void printListFromTailToHead(ListNode listNode,List<Integer> list) {
if(listNode==null){
return;
}
printListFromTailToHead(listNode.next,list);
list.add(listNode.val);
}
}
用迭代的话,就用个栈嘛,全部元素入栈,然后再一个一个的pop。或者用反转链表的思路,先反过来,再逐一添加(感觉有点多此一举的味道)。