递归

import java.util.ArrayList;
public class Solution {
    ArrayList<Integer> res = new ArrayList<>();
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        recur(listNode);
        return res;
    }
    public void recur(ListNode listNode){
        if(listNode == null)
            return;
        recur(listNode.next);
        res.add(listNode.val);
    }
}

时间复杂度 O(n)
空间复杂度 O(n)


非递归

import java.util.ArrayList;
public class Solution {

    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> res = new ArrayList<>();
       ListNode tmp = listNode;
        while(tmp != null){
            res.add(0, tmp.val);
            tmp = tmp.next;
        }
        return res;
    }

}

时间复杂度 O(n)
空间复杂度 O(n)