从尾到头打印链表
这道题考察的其实是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的速度吧。