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

题目描述

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

实验平台:牛客网


解决思路:

剑指offer-题7:用两个栈实现队列_第1张图片
剑指offer-题7:用两个栈实现队列_第2张图片
剑指offer-题7:用两个栈实现队列_第3张图片

java:

import java.util.Stack;

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

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

    public int pop() {
        if(!stack2.isEmpty()){
            return stack2.pop();
        }else{
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }
            return pop();
        }
    }
}

python:

# -*- coding:utf-8 -*-
class Solution:
    stack1 = []
    stack2 = []

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

    def pop(self):
        if len(self.stack2) > 0:
            return self.stack2.pop()
        else:
            while len(self.stack1) > 0:
                self.stack2.append(self.stack1.pop())
            return self.pop()

你可能感兴趣的:(剑指offer)