劍指Offer--【用兩個棧實現隊列】--java

題目描述
用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。
思路:
首先需要明確棧和隊列的特性,棧的特點是先進後出,即最後被壓入(push)棧的元素會第一個被彈出(pop);隊列的特點是先進先出,即第一個進入隊列元素將會第一個出來。本體的思路是:將元素全部壓入(push)stack1中,此時stack2爲空;元素全部壓入完畢,將stack1中的元素彈出(pop)並將其壓入(push)stack2中,全部壓入(push)完畢,將stack2中的元素取出。

代碼:

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.isEmpty()){
          while(!stack1.isEmpty()){
              stack2.push(stack1.pop());
          }
      }
        return  stack2.pop();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章