原题目:
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
题目分析:
- 创建两个ArrayList,一个用于存放listnode输入值,另一个用于存放反转后的值;
- 创建临时ListNode位temp;
- 遍历temp,将每个listnode值存放于第一个集合;
- 逆序遍历第一个集合,将每个值存放于第二个集合,返回第二个集合;
代码实现:
/**
* public class ListNode {
* int val;
* ListNode next = null;
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//创建两个ArrayList,一个用来接收输入的listnode节点的值,另一个是反转之后的值
ArrayList first = new ArrayList();
ArrayList last = new ArrayList();
//创建一个临时的ListNode
ListNode temp= listNode;
while(temp!=null){
first.add(temp.val);
temp=temp.next;
}
//使用逆序来进行将ArrayList进行赋值到last中
for(int i= first.size()-1;i>=0;i--){
last.add(first.get(i));
}
return last;
}
}