用两个栈实现队列_JAVA_简单
用两个栈实现队列
http://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6
- 栈先入后出(反序),队列先入先出(正序)
- 第一栈用来导出,第二栈用来导入
- 进队列时就压入第二栈,出队列就弹出第一栈栈顶,若第一栈顶为空就将第二栈元素导出到第一栈(反序变正序),再弹出
import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { // 直接压入第二栈 stack2.push(node); } public int pop() { // 第一栈为空则先从第二栈导入 if(stack1.empty()) { while(!stack2.empty()) { stack1.push(stack2.pop()); } } return stack1.pop(); } }