剑指Offer - 5 - 用两个栈实现队列
2019-05-03 本文已影响0人
vouv
题目描述
思路
用一个栈来保存数据,其中栈底是队尾,栈顶是队头
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()
}