劍指offer-用棧實現佇列-java
阿新 • • 發佈:2019-01-23
題目描述:
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。
思路解析:
- 入棧:棧1是用來入棧的,棧2是輔助;
- 如果棧2是空的,直接入棧到棧1中,如果棧2不為空,那麼就先把棧2中的push回棧1中,再入棧。
- 出棧:棧2是用來出棧的,棧1是輔助;
- 如果棧1是非空的,要把棧1的都push到棧2中,如果棧1是空的,那麼直接push到棧2中。
程式碼:
import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { while(!stack2.isEmpty()){ stack1.push(stack2.pop()); } stack1.push(node); } public int pop() { while(!stack1.isEmpty()){ stack2.push(stack1.pop()); } return stack2.pop(); } }