原題目:
輸入一個鏈表,按鏈表從尾到頭的順序返回一個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;
}
}