78 lines
2.3 KiB
Java
78 lines
2.3 KiB
Java
//实现一个MyQueue类,该类用两个栈来实现一个队列。 示例: MyQueue queue = new MyQueue(); queue.push(1);
|
||
//queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回 1 queue.empty(); // 返
|
||
//回 false 说明: 你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size 和 is empty
|
||
// 操作是合法的。 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。 假设所有操作都是有效的
|
||
//(例如,一个空的队列不会调用 pop 或者 peek 操作)。 Related Topics 栈
|
||
// 👍 35 👎 0
|
||
|
||
package leetcode.editor.cn;
|
||
|
||
import java.util.Stack;
|
||
|
||
//面试题 03.04:化栈为队
|
||
public class ImplementQueueUsingStacksLcci {
|
||
public static void main(String[] args) {
|
||
//测试代码
|
||
// Solution solution = new ImplementQueueUsingStacksLcci().new Solution();
|
||
}
|
||
|
||
//力扣代码
|
||
//leetcode submit region begin(Prohibit modification and deletion)
|
||
class MyQueue {
|
||
Stack<Integer> stack1;
|
||
Stack<Integer> stack2;
|
||
|
||
/**
|
||
* Initialize your data structure here.
|
||
*/
|
||
public MyQueue() {
|
||
stack1 = new Stack<>();
|
||
stack2 = new Stack<>();
|
||
}
|
||
|
||
/**
|
||
* Push element x to the back of queue.
|
||
*/
|
||
public void push(int x) {
|
||
while (!stack1.empty()) {
|
||
stack2.push(stack1.pop());
|
||
}
|
||
stack1.push(x);
|
||
while (!stack2.isEmpty()) {
|
||
stack1.push(stack2.pop());
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Removes the element from in front of queue and returns that element.
|
||
*/
|
||
public int pop() {
|
||
return stack1.pop();
|
||
}
|
||
|
||
/**
|
||
* Get the front element.
|
||
*/
|
||
public int peek() {
|
||
return stack1.peek();
|
||
}
|
||
|
||
/**
|
||
* Returns whether the queue is empty.
|
||
*/
|
||
public boolean empty() {
|
||
return stack1.empty();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Your MyQueue object will be instantiated and called as such:
|
||
* MyQueue obj = new MyQueue();
|
||
* obj.push(x);
|
||
* int param_2 = obj.pop();
|
||
* int param_3 = obj.peek();
|
||
* boolean param_4 = obj.empty();
|
||
*/
|
||
//leetcode submit region end(Prohibit modification and deletion)
|
||
|
||
} |