剑指offer-用两个栈实现队列

75 阅读1分钟

用两个栈实现队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

class Solution:
    def __init__(self):
        self.in_stack = []  # 队列尾
        self.out_stack = []  # 队列头

    def __len__(self):
        return len(self.in_stack) + len(self.out_stack)

    def push(self, node):
        self.in_stack.append(node)

    def pop(self):
        if not self.out_stack:  # 队列头为空
            self.out_stack = self.in_stack[::-1]
            self.in_stack = []
        return self.out_stack.pop()