題目描述
用兩個棧來實現一個隊列,完成隊列的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();
}
}