输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
思路:简单题方法很多。自己是创建了列表,将链表里的数据依次放入列表,之后再倒序将列表里的数据放入数组中;官方是创建了一个栈,将链表节点压入,再依次弹出,按照弹出顺序把数据存入数组中;也可以先遍历,获得链表的size,再创建数组,依次存入数据
class Solution {
public int[] reversePrint(ListNode head) {
List<Integer> list = new ArrayList<Integer>();
ListNode temp = head;
//将链表数据存入列表中
while(temp!=null){
list.add(temp.val);
temp = temp.next;
}
int size = list.size();
int[] arrays = new int[size];
for(int i = size;i>0;i--){
arrays[size-i] = list.get(i-1);
}
return arrays;
}
}