LintCode : 用栈实现队列

来源:互联网 发布:淘宝买家退款率计算 编辑:程序博客网 时间:2024/06/06 03:08

用栈实现队列

  •  描述
  •  笔记
  •  数据
  •  评测

正如标题所述,你需要使用两个栈来实现队列的一些操作。

队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。

pop和top方法都应该返回第一个元素的值。

您在真实的面试中是否遇到过这个题? 
Yes
样例

比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2

挑战 
标签 
相关题目 
  • 不管存取都用stack1,stack2只是用来做辅助使用
  • public class Queue {    private Stack<Integer> stack1;    private Stack<Integer> stack2;    public Queue() {       // do initialization if necessary    stack1 = new Stack<>();    stack2 = new Stack<>();    }        public void push(int element) {        // write your code here    stack1.push(element);    }    public int pop() {        // write your code here    while(!stack1.isEmpty()){        stack2.push(stack1.pop());        }    int res =  stack2.pop();    while(!stack2.isEmpty()){    stack1.push(stack2.pop());    }    return res;    }    public int top() {        // write your code here    while(!stack1.isEmpty()){        stack2.push(stack1.pop());        }    int res =  stack2.peek();    while(!stack2.isEmpty()){    stack1.push(stack2.pop());    }    return res;    }}


0 0
原创粉丝点击