leetcode 链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/
题目
解题
题目要求两个栈实现队列,所有必须使用两个栈
- 一个栈作入栈,即有数据在队尾插入时直接把数据放入此栈
一个栈作出栈,需要从队头移除数据时分两种情况:
- 出栈有数据,则直接将数据出栈返回即可
出栈没有数据,将入栈中的数据依次弹出压入出栈
class CQueue {
private Stack<Integer> in;
private Stack<Integer> out;
public CQueue() {
this.in = new Stack<>();
this.out = new Stack<>();
}
public void appendTail(int value) {
in.push(value);
}
public int deleteHead() {
if (out.empty()) {
while (!in.empty()) {
out.push(in.pop());
}
}
return out.empty() ? -1 : out.pop();
}
}