美文网首页
剑指Offer - 5 - 用两个栈实现队列

剑指Offer - 5 - 用两个栈实现队列

作者: vouv | 来源:发表于2019-05-03 00:11 被阅读0次

    题目描述

    用两个栈实现队列

    思路

    用一个栈来保存数据,其中栈底是队尾,栈顶是队头
    push时,需要先把数据栈中数据都弹出然后推入数据,再把弹出的数据推回
    pop则直接弹出栈顶即可

    Code

    • Python
    # -*- coding:utf-8 -*-
    items = []
    tmp = []
    class Solution:
        def push(self, node):
            while len(items) != 0:
                tmp.append(items.pop())
            items.append(node)
            while len(tmp) != 0:
                items.append(tmp.pop())
        def pop(self):
            return items.pop()
    
    • JavaScript
    const stack1 = []
    const stack2 = []
    
    function push(node)
    {
      while(stack1.length !== 0) {
        stack2.push(stack1.pop())
      }
      stack1.push(node)
      while(stack2.length !== 0) {
        stack1.push(stack2.pop())
      }
    }
    function pop()
    {
      return stack1.pop()
    }
    

    相关文章

      网友评论

          本文标题:剑指Offer - 5 - 用两个栈实现队列

          本文链接:https://www.haomeiwen.com/subject/pgugnqtx.html