题目内容:
解题思路:
- 栈的特性 ----(后进先出) 队列的特性 ---- (先入先出)
- 用两个栈实现,s1压栈,s2压栈并出栈(实现先入先出的特性)
- 当s2空时,将s1的元素全部压入
解题代码:
class MyQueue {
Stack<Integer> s1;
Stack<Integer> s2;
public MyQueue() {
s1 = new Stack<>();
s2 = new Stack<>();
}
public void push(int x) {
s1.push(x);
}
public int pop() {
if(s2.empty()){
while(!s1.empty()){
s2.push(s1.pop());
}
}
return s2.pop();
}
public int peek() {
if(s2.empty()){
while(!s1.empty()){
s2.push(s1.pop());
}
}
return s2.peek();
}
public boolean empty() {
/*
if(s1.size() == 0 && s2.size() == 0){
return true;
}else{
return false;
}
*/
if(s1.empty() && s2.empty()){
return true;
}else{
return false;
}
}
}