1. 程式人生 > >《劍指offer》系列 用兩個棧實現佇列(Java)

《劍指offer》系列 用兩個棧實現佇列(Java)

連結

題目描述

用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。

思路

這裡主要考慮棧和佇列的異同 棧是現先進後出 佇列是先進先出 設定兩個棧 其中第一個壓入值 和佇列沒什麼區別 第二個棧壓入第一個棧彈出的值 再彈出 兩個棧的操作就變成了一個佇列的操作

程式碼

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.size()==0){
    		while(stack1.size()>0){
    			stack2.push(stack1.pop());
    		}
    	}
    	return stack2.pop();
    }
}