劍指offer——(21)用兩個棧實現佇列
阿新 • • 發佈:2019-01-05
import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); // stack1模擬入隊操作 Stack<Integer> stack2 = new Stack<Integer>(); // stack2模擬出隊操作 public void push(int node) { stack1.push(node); } public int pop() { // 出隊的時候要判斷佇列中是否有元素 if(stack2.empty()){ // 沒有元素就要從stack1中push到stack2中 while(!stack1.empty()){ stack2.push(stack1.pop()); } // 如果stack1中也沒有元素 那經過上面的操作stack2中還是空 這時候判斷一下返回個0吧 if(stack1.empty()&&stack2.empty()) return 0; } // 一開始出隊的時候不為空就直接pop 為空就先從stack1中push進來然後再pop return stack2.pop(); } }