题目来源
https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6?tpId=13&tqId=11158&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型
解题思路
用stack1作为输入栈用stack2作为输出栈。
如果stack2为空,则将stack1栈的数据全部给stack2。stack1的栈底到了stack2栈顶.
如果stack2不为空,则直接pop()栈顶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
) {
stack1
.push(node
);
}
public int pop() {
if(stack2
.empty()){
while(!stack1
.empty()) {
stack2
.push(stack1
.pop());
}
int temp
= stack2
.pop();
return temp
;
} else {
int temp
= stack2
.pop();
return temp
;
}
}
}