輸入一個鏈表,按鏈表值從尾到頭的順序返回一個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