从尾到头打印链表

这道题考察的其实是arraylist 的用法(′д` )…然而全忘了

ArrayList 是一个数组队列,相当于 动态数组,它的容量能动态增长。  

构造函数:ArrayList()
ArrayList(int capacity)   // capacity是ArrayList的默认容量大小。当由于增加数据导致容量不足时,容量会添加上一次容量大小的一半。
添加元素:ArrayList list = new ArrayList();

                  list.add("0");

得到元素:list.get(0);

 

 

题解:import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        int i;
        ArrayList list = new ArrayList();
        for(i=0; listNode != null; i++){   //先按顺序拿出来
            list.add(listNode.val);
            listNode = listNode.next;
        }
        ArrayList list1 = new ArrayList();
        for(int j=0; j<i; j++){                  //再反向加到另一个arraylist中去
            list1.add(list.get(i-j-1));
        }
        return list1;
    }
}

与用栈的方法相比应该是同样2n的速度吧。

posted on 2019-03-06 09:13  q2013  阅读(91)  评论(0编辑  收藏  举报

导航