Descripción del problema
Utilice dos pilas para implementar una cola y completar las operaciones Push y Pop de la cola. Los elementos de la cola son de tipo int.
Pila
: primero en entrar, último en salir Cola: primero en entrar, primero en salir
Ejemplo
Ejemplo 1
empujar : 1,2,3
pop : 3,2,1
Soluciones
análisis
- Debido a que la pila y la cola están dentro y fuera de orden, podemos usar dos pilas para resolver el problema. Stack1 es responsable de almacenar datos push, y stack2 es responsable de empujar la entrada de statk1 en stack2 a su vez durante la operación pop, por lo que la secuencia de apilamiento se convierte en el orden de la cola.
Código
// 思路1
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() {
while (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
Si quieres hacer la prueba, puedes ir directamente al enlace de Niuke.com para hacer la prueba