描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
0 <= 链表长度 <= 10000
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList();
ListNode head = listNode;
while(head != null){
list.add(head.val);
head = head.next;
}
ArrayList<Integer> list2 = new ArrayList();
for(int i= 0;i< list.size();i++){
list2.add(list.get(list.size()-1-i));
}
return list2;
}
}
第二种方法:用reverse方法
import java.util.*;
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList();
while(listNode!=null){
list.add(listNode.val);
listNode = listNode.next;
}
Collections.reverse(list);
return list;
}
}