剑指offer第七天之用两个栈实现队列

剑指offer第七天之用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

栈A用来作入队列
栈B用来出队列,当栈B为空时,栈A全部出栈到栈B,栈B再出栈(即出队列)
java:
在这里插入图片描述

import java.util.Stack;

public class Solution {
        Stack<Integer> stack1 = new Stack<Integer>();
        Stack<Integer> stack2 = new Stack<Integer>();

        public void push(int node) {
            stack1.push(node);
        }

        public int pop() {
            if(stack2.size()<=0)
            {
                while(stack1.size()>0)
                {
                    stack2.push(stack1.pop());
                }
            }
            else if(stack2.size()==0)
            {
                return -1;
            }
            return stack2.pop();
    }
}

python:
在这里插入图片描述

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 = []
    def push(self, node):
        # write code here
        self.stack1.append(node)
    def pop(self):
        # return xx
        if len(self.stack2)<=0:
            while len(self.stack1)!=0:
                self.stack2.append(self.stack1.pop())
        elif len(self.stack2)==0:
            return None
        return self.stack2.pop()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章