栈与队列相关
232.用栈实现队列
参考文章
题目链接
个人题解
class MyQueue {
Stack<Integer> sIn;
Stack<Integer> sOut;
public MyQueue() {
sIn = new Stack<>();
sOut = new Stack<>();
}
public void push(int x) {
sIn.push(x);
}
public int pop() {
if (!sOut.isEmpty()) {
return sOut.pop();
} else {
while (!sIn.isEmpty()) {
sOut.push(sIn.pop());
}
return sOut.pop();
}
}
public int peek() {
if (!sOut.isEmpty()) {
return sOut.peek();
} else {
while (!sIn.isEmpty()) {
sOut.push(sIn.pop());
}
return sOut.peek();
}
}
public boolean empty() {
return sIn.isEmpty() && sOut.isEmpty();
}
}
225. 用队列实现栈
参考文章
题目链接
个人题解
class MyStack {
Queue<Integer> q1;
public MyStack() {
q1 = new LinkedList<>();
}
public void push(int x) {
q1.offer(x);
}
public int pop() {
getInteger();
return q1.poll();
}
private void getInteger() {
for (int i = 0; i < q1.size() - 1; i++) {
q1.offer(q1.poll());
}
}
public int top() {
getInteger();
Integer poll = q1.poll();
q1.offer(poll);
return poll != null ? poll.intValue() : -1;
}
public boolean empty() {
return q1.isEmpty();
}
}