【剑指OFFER】从尾到头打印链表

【问题描述】

输入一个链表,按链表从尾到头的顺序返回一个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 }
View Code

二、链表头插法

 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 }
View Code
posted @ 2019-09-16 17:31  ___Moongazer  阅读(121)  评论(0)    收藏  举报