1. 程式人生 > >劍指offer——(21)用兩個棧實現佇列

劍指offer——(21)用兩個棧實現佇列

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();
    }
}