1. 程式人生 > >劍指offer系列牛客——倒序列印單向連結串列值

劍指offer系列牛客——倒序列印單向連結串列值

題目描述

輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。

單向連結串列的遍歷是從頭至尾,要求從尾至頭列印,這種先進後出的模式很像棧,因此構建一個臨時棧儲存連結串列的值,再從棧中彈出依次儲存即可。

程式碼如下:

import java.util.ArrayList;
import java.util.Stack;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ListNode node= listNode;
        Stack<Integer> store= new Stack();
        ArrayList<Integer> res= new ArrayList<>();
        while(node!= null){
            store.push(node.val);
            node= node.next;
        }
        while(!store.isEmpty()){
            res.add(store.pop());
        }
        return res;
    }
}

一開始新建棧物件時語句為Stack store= new Stack()結果報錯,不能將object儲存至Integer中,這種設定儲存型別的細節還是要注意

tips:如何使用棧實現先進先存的案例呢?(注意先進先存與先進先出不一樣,棧是肯定要先進後出的,但可以再不彈出元素的情況下實現先遍歷底層的操作)

for(Integer x: s) {
            System.out.print(x+" ");
 }