输入一个链表,按链表值从尾到头的顺序返回一个ArrayList


 1 package algorithms;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Stack;
 5 
 6 /**
 7 *    public class ListNode {
 8 *        int val;
 9 *        ListNode next = null;
10 *
11 *        ListNode(int val) {
12 *            this.val = val;
13 *        }
14 *    }
15 *
16 */
17 /*
18  * 题目描述
19  * 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
20  * 
21  * 注意 这个跟反转链表不一样的
22 */
23 
24 
25 public class PrintListFromTailToHead {
26     
27     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
28         ArrayList<Integer> list = new ArrayList<Integer>();
29         Stack<Integer> s = new Stack<Integer>();
30         while(listNode!=null) {
31             s.push(listNode.val);
32             listNode = listNode.next;
33         }
34         while(!s.isEmpty()) {
35             list.add(s.pop());
36         }
37         return list;
38     }
39 }

思路:利用栈的先进后出的特性解决。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM