劍指offer-兩個棧實現一個隊列-Java

思想比較簡單,隊列先進先出,我們要實現兩個操作,進隊和出隊;

手裏有2個棧,名爲s1,s2。

那麼進隊的時候:只從進s1,即s1.push即可;

出隊的時候:只從s2出。如果s2有元素的話,出棧即可;如果沒有的話,令s1全部元素出棧,放入s2,返回s2.pop;

具體實現如下:

import java.util.Stack;

public class Solution {
    Stack<Integer> s1 = new Stack<Integer>();
    Stack<Integer> s2 = new Stack<Integer>();
    
    public void push(int node) {
        s1.push(node);
    }
    
    public int pop() {
        while(!s2.isEmpty()){
            return s2.pop();
        }
        while(!s1.isEmpty()){
            s2.push(s1.pop());
        }
        return s2.pop();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章