//解题思路一:递归 public ArrayList printListFromTailToHead(ListNode listNode) { if(listNode == null) { return new ArrayList(); } ArrayList result = printListFromTailToHead(listNode.next); result.add(listNode.val); return result; } //解题思路二:每次将数据插到list的0位,就自然逆序了 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> result = new ArrayList<>(); while(listNode != null) { result.add(0, listNode.val); listNode = listNode.next; } return result; }