【问题描述】
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
时间限制:1秒 空间限制:32768K
【AC代码】
一、链表+递归
1 import java.util.ArrayList; 2 public class Solution { 3 ArrayList<Integer> al = new ArrayList<>(); 4 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 5 if (listNode != null) { 6 printListFromTailToHead(listNode.next); 7 al.add(listNode.val); 8 } 9 return al; 10 } 11 }
二、链表头插法
1 import java.util.ArrayList; 2 public class Solution { 3 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 4 ArrayList<Integer> al = new ArrayList<>(); 5 while (listNode != null) { 6 al.add(0, listNode.val); //每一次头插都相当于将之前所插入的元素向后顺序移动一个单位 7 listNode = listNode.next; 8 } 9 return al; 10 } 11 }
原文:https://www.cnblogs.com/moongazer/p/11523558.html