思路
设两个栈分别为stack1和stack2,入队时,就把元素加入到stack1里面,当出队时,就把stack1里面的元素全部放到stack2里面,最后弹出stack1里面的元素,即为对首元素,注意这个时候stack2里面的元素的顺序是入队的元素,如果需要继续执行出队操作,直接弹出stack2栈顶的元素即可。
public class solution{
Stack<Integer> stack1=new Stack();
Stack<Integer> stack2=new Stack();
public void push(int node){
stack1.push(node);
}
public int pop(){
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}