思路一:遍历所有节点,将所有节点的值按顺序存入List,从尾部开始遍历这个list,将遍历值按顺序存入一个list2,返回list2,实现代码如下:
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> resultList = new ArrayList<Integer>();
while(listNode!=null){
list.add(listNode.val);
listNode = listNode.next;
}
for(int i=list.size()-1;i>=0;i--){
resultList.add(list.get(i));
}
return resultList;
}
}
思路二:利用栈先入后出的结构,将所有节点的值存入一个栈中,依次取出栈中的值返回即可,代码如下:
import java.util.Stack;
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailT