题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数push和pop,分别完成在队列尾部插入结点和在队列头部删除结点的功能。
————来源于《剑指offer》
- 思路:在push元素的时候往一个栈里面放元素,在pop元素的时候将元素放在另一个栈里,从另一个栈里面pop元素
- 代码实现:
package com.qianyu.jianzhioffer.twoStack;
/**
* @author lijing
* @date 2019-07-20-18:13
* @discroption
*/
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.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
public static void main(String[] args) {
Solution s = new Solution();
s.push(1);
s.push(2);
s.push(3);
System.out.println(s.pop());
System.out.println(s.pop());
System.out.println(s.pop());
}
}