题目描述
输入一个链表,按链表值从尾到头的顺序返回一个 ArrayList。
解题思路
我们知道链表是单向的,但是要求从尾到头的按链表值返回,很容易想到 Stack 这个数据结构。栈的特点就是先进后出,我们只需要遍历这个链表,把访问到的值放到栈里面,最后再从栈里面取值返回到一个 ArrayList 即可。
代码实现
import java.util.ArrayList;import java.util.Stack;public class Problem3 {class ListNode {int val;ListNode next;}public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> ans = new ArrayList<Integer>();Stack<Integer> temp = new Stack<Integer>();ListNode head = listNode;while(head!=null){temp.push(head.val);head=head.next;}while(temp.size()!=0){ans.add(temp.peek());temp.pop();}return ans;}}
