import java.util.*;

public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode head) {
        // 初始化
        ArrayList<Integer> res = new ArrayList<>();
       // 递归打印链表
       recursion(head, res);
       // 返回结果
       return res;
    }

    // 递归打印尾结点
    public static void recursion(ListNode node, ArrayList<Integer> res) {
        // 预处理
        if (node == null) return;
        // 当前结点为尾结点
        if (node.next == null) {
            res.add(node.val);
        } else {
            // 先打印后面的结点
            recursion(node.next, res);
            res.add(node.val);
        }
    }
}