(三)

  题目描述:输入一个链表,按链表值从尾到头的顺序返回一个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 }

 

posted @ 2018-12-06 19:55  落水河图  阅读(414)  评论(0)    收藏  举报