两个栈实现队列 牛客网 程序员面试金典 C++ Python
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。C++
//run:5ms memeory:612k class Solution { public: void push(int node) { stack1.push(node); } int pop() { if (stack2.empty()) while(!stack1.empty()){ stack2.push(stack1.top()); stack1.pop(); } int ret = stack2.top(); stack2.pop(); return ret; } private: stack<int> stack1; stack<int> stack2; };Python
class Solution: #run:28ms memory:5624k def __init__(self): self.stk1 = [] self.stk2 = [] def push(self, node): self.stk1.append(node) def pop(self): if self.stk2 == []: while self.stk1: n = self.stk1.pop() self.stk2.append(n) n = self.stk2.pop() return n
转载于:https://www.cnblogs.com/vercont/p/10210311.html