隊(duì)列| Leetcode 225

Leetcode 分類刷題 —— 隊(duì)列(Queue)

1、題目

Leetcode 225. Implement Stack using Queues

2、思路

始終保證隊(duì)列a為空,新元素x添加到空隊(duì)列a中,x就始終在a的隊(duì)頭。
再將另外一個(gè)隊(duì)列b中的數(shù)據(jù)依次加入到a中,a隊(duì)列里的元素就保持著先進(jìn)后出的性質(zhì)。

3、Java 代碼

class MyStack {
    private Queue<Integer> a;//輸入隊(duì)列
    private Queue<Integer> b;//輸出隊(duì)列
    
    public MyStack() {
        a = new LinkedList<>();
        b = new LinkedList<>();
    }
    
    public void push(int x) {
        a.offer(x);
        // 將b隊(duì)列中元素全部轉(zhuǎn)給a隊(duì)列
        while(!b.isEmpty())
            a.offer(b.poll());
        // 交換a和b,使得a隊(duì)列沒(méi)有在push()的時(shí)候始終為空隊(duì)列
        Queue temp = a;
        a = b;
        b = temp;
    }
    
    public int pop() {
        return b.poll();
    }
   
    public int top() {
        return b.peek();
    }
    
    public boolean empty() {
        return b.isEmpty();
    }
}

參考文章:
https://leetcode.cn/problems/implement-stack-using-queues/comments/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容