题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路:由于链表只能从前往后逐个访问,要实现倒叙链表,可以申请一个空栈,在遍历链表的同时,将链表头结点逐个压栈。最后逐个出栈生成新的链表。
代码:
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.Stack;
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<>();
while (listNode != null){
stack.push(listNode.val);
listNode = listNode.next;
}
ArrayList<Integer> list = new ArrayList<>();
while (!stack.isEmpty()){
list.add(stack.pop());
}
return list;
}
}