【劍指Offer】17用兩個棧實現佇列
阿新 • • 發佈:2018-11-11
題目描述
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別
時間限制:1秒;空間限制:32768K
解題思路
由於佇列的特點是先進先出,而棧是先進後出,可以用兩個棧串聯來實現佇列:棧1先進後出,棧1出棧棧2入棧,棧2後進先出,從全域性來看實現了先進先出的功能。
# -*- coding:utf-8 -*- class Solution: # 如果沒有在__init__中初始化對應的例項變數的話,導致後續引用例項變數會出錯 def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): # write code here self.stack1.append(node) def pop(self): # return xx for i in range(len(self.stack1)): self.stack2.append(self.stack1.pop()) x = self.stack2.pop() for i in range(len(self.stack2)): self.stack1.append(self.stack2.pop()) return x