(三)
题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
解题思路:根据堆栈先进后出的特性,先将这个链表进堆栈,然后出堆栈添加到一个ArrayList当中。
这里主要注意java.util.Stack堆栈类提供的方法:
empty():测试堆栈是否为空 pop():移除堆栈顶部的对象,并作为此函数的值返回该对象
push():把项压入堆栈顶部
1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6 * ListNode(int val) { 7 * this.val = val; 8 * } 9 * } 10 * 11 */ 12 import java.util.Stack; 13 import java.util.ArrayList; 14 public class Solution { 15 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 16 Stack<Integer> stack = new Stack<>(); 17 while (listNode != null){ 18 stack.push(listNode.val); 19 listNode = listNode.next; 20 } 21 22 ArrayList<Integer> list = new ArrayList<>(); 23 while (!stack.isEmpty()){ 24 list.add(stack.pop()); 25 } 26 return list; 27 } 28 }

浙公网安备 33010602011771号