用两个栈实现队列_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();
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:55
点赞 评论 收藏
分享
下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:20
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务