2つのキューがオファー実装スタックを受賞
タイトル説明
キューを達成するための2つのスタック、完了キューのプッシュとポップ操作。キューの要素がint型。
問題解決のためのアイデア
2つのスタックキューの使用、キューの最初の二つの反対側。プッシュキュー操作は、まず、ポップstack2で、最初の要素を空にし、それらがstack1プッシュしていない場合stack2は、空であるかどうかを判断しなければならない;ポップ操作キューは、最初stack1が空になると、選択し、stack1が空であるか否かを判断しますリターン-1 stack2の最初の値をポップ、値stack1 stack2をプッシュする空でない場合。
ブロック
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
int val=0;
while(!stack2.empty()){
val=stack2.pop();
stack1.push(val);
}
stack1.push(node);
}
public int pop() {
int val=0;
while(!stack1.empty()){
val=stack1.pop();
stack2.push(val);
}
if(!stack2.empty()){
val=stack2.pop();
return val;
}
else
return -1;
}
}