劍指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+" ");
}