232.用栈实现队列
class MyQueue {
private Stack<Integer> inStack;
private Stack<Integer> outStack;
public MyQueue() {
inStack = new Stack<>();
outStack = new Stack<>();
}
public void push(int x) {
inStack.add(x);
}
public int pop() {
if (outStack.empty()) {
if (!inStack.empty()) {
while (!inStack.empty()) {
outStack.add(inStack.pop());
}
return outStack.pop();
} else {
return -1;
}
} else {
return outStack.pop();
}
}
public int peek() {
if (!outStack.empty()) {
return outStack.peek();
} else {
if (!inStack.empty()) {
while (!inStack.empty()) {
outStack.add(inStack.pop());
}
return outStack.peek();
} else {
return -1;
}
}
}
public boolean empty() {
return inStack.empty() && outStack.empty();
}
}
225.用队列实现栈
class MyStack {
Deque<Integer> deque;
public MyStack() {
deque = new ArrayDeque<>();
}
public void push(int x) {
deque.addLast(x);
}
public int pop() {
return deque.removeLast();
}
public int top() {
return deque.getLast();
}
public boolean empty() {
return deque.isEmpty();
}
}