5.题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
根据栈后进先出的特性,打印链表。
Java代码实现:
import java.util.*;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
if(listNode == null){ //判断listNode是否为空,为空则返回list
return list;
}
Stack<ListNode> stack = new Stack<>(); //声明并创建一个栈
while(listNode != null){
stack.push(listNode);
listNode = listNode.next;
}
while(!stack.isEmpty()){ //将链表中的值全部取出直到栈为空
list.add(stack.pop().val); //打印并返回列表
}
return list;
}
}