用兩個棧實現隊列

用兩個棧來實現一個隊列,完成隊列的Push和Pop操做。 隊列中的元素爲int類型。

思路

push時直接入棧stack1,pop時若stack2爲空則stack1出棧到stack2後stack2.pop(),不然stack2直接pop。
時間複雜度O(1)。java

代碼

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
        stack1.push(node);
    }
    
    public int pop() {
        if(stack2.empty()) {
            while(!stack1.empty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}
相關文章
相關標籤/搜索