注意相应的数据结构的想法和思路

栈和队列自带push()和pop操作

核心思想为:将另一个栈中的出栈元素,按照先后循序压入其中的一个栈中,然后这个栈pop出,送入另一个栈中,这样就实现了先后出栈顺序的颠倒,最后第二个栈压出元素即可实现队列的先进先出操作

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 = []
        
        
    # 需要掌握的方法为,直接将相关的队列1中的node节点,先把所有的节点放入stack1中,然后pop出来,放到stack2中,然后stack2直接pop
    def push(self, node):
        # write code here
        self.stack1.append(node)
        # 所有的node都放进去了
    
    
    def pop(self):
        # return xx
        # 如果stack2不为空,可执行出栈操作
        if self.stack2!=[]:
            
            return self.stack2.pop()  # 且还要输出到控制台
            
        
        # 为空,进一个出一个
        elif self.stack2==[]:
            # 依次stack1出,stack2进,return 出
            for i in range(len(self.stack1)):
                self.stack2.append(self.stack1.pop())
            return self.stack2.pop()