题目
代码
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.peek());
stack1.pop();
}
}
int ret = stack2.peek();
stack2.pop();
return ret;
}
}
思路
2个栈实现一个队列,由于队列是先进先出,栈是先进后出的。
1.push方法入栈就是直接将数据push进stack1。
2.pop方法就要分情况,如果stack2为空,就把stack1的元素全都push进stack2,然后peek栈顶元素。如果stack2不为空,就直接peek栈顶元素就可以。
总结
题目比较简单,就是把栈1的元素输入到栈2,就变成正向排序了。