老汉技术专栏

Java开发程序猿一枚~欢迎各位批评指正

LintCode 40. 用栈实现队列

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

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

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

public class MyQueue {
   Stack<Integer> stack1 = new Stack<>();
   Stack<Integer> stack2 = new Stack<>();
   public MyQueue() {
      // do intialization if necessary
   }

   /*
    * @param element: An integer
    * @return: nothing
    */
   public void push(int element) {
      // write your code here
      stack1.push(element);
   }

   /*
    * @return: An integer
    */
   public int pop() {
      // write your code here
      if (stack2.empty()) {
         while (!stack1.empty()) {
            stack2.push(stack1.pop());
         }
      }

      return stack2.pop();
   }

   /*
    * @return: An integer
    */
   public int top() {
      // write your code here
      if (stack2.empty()) {
         while (!stack1.empty()) {
            stack2.push(stack1.pop());
         }
      }
      Integer tmp = stack2.pop();
      stack2.push(tmp);
      return tmp;
   }
}

阅读更多
文章标签: java lintcode
个人分类: java开发
上一篇LintCode 39. 恢复旋转排序数组
下一篇LintCode 41. 最大子数组
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭