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

题目链接:从尾到头打印链表

题意:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

给出的数据结构

/**
    public class ListNode {
        int val;
        ListNode next = null;

        ListNode(int val) {
            this.val = val;
        }
    }
**/

  

题解:我投机取巧用了一个collections的reverse...递归应该是比较好的想法。。

 

代码:

 

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 public class Solution {
 4     ArrayList array = new ArrayList();
 5     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
 6 
 7         while(listNode != null){
 8             array.add(listNode.val);
 9             listNode = listNode.next;
10         }
11         Collections.reverse(array);
12         return array;
13         
14     }
15 }
16 
17 
18 OR
19 
20 
21 import java.util.ArrayList;
22 
23 public class Solution {
24     ArrayList array = new ArrayList();
25     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
26         if(listNode == null){
27             return array;
28         }
29         printListFromTailToHead(listNode.next);
30         array.add(listNode.val);
31         return array;
32         
33     }
34 }

 

posted @ 2019-03-03 10:40  甜酒果。  阅读(130)  评论(0编辑  收藏  举报