劍指offer(java實現)第5題“用兩個棧實現佇列”-牛客網
題目描述
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。
時間限制:1秒 空間限制:32768K 熱度指數:254265
解答:
import java.util.Stack;
public class Solution {//思路:將stack1當做入佇列,將stack2當做出佇列,當佇列需要push入佇列一個元素的時候,直接push到stack1就可以了;當佇列需要pop出佇列時
//,首先判斷stack2是否為空,如果為空,則將stack1中的元素全部pop出來並依次push到stack2中,再讓stack2來pop一下就可以了;如果不為空,stack2直接pop一下就行。
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.empty()) {
stack2.push(stack1.pop());
}
}
if (stack2.size() == 0) {//當stack1和stack2都長度為0的時候,執行到這裡還是會出現stack2的長度為0,所以要做異常處理
System.out.println("stack1和stack2的長度都為0,不能進行pop操作,丟擲異常");
return -1;
}
return stack2.pop();
}
}
相關文章
- 劍指offer | 09. 用兩個棧實現佇列佇列
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 【劍指offer】兩個棧實現一個佇列佇列
- 【劍指offer】兩個佇列實現一個棧佇列
- 《劍指 Offer》棧實現佇列佇列
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹
- 劍指offer(java實現)第3題“從尾到頭列印連結串列”-牛客網Java
- 用兩個棧實現佇列佇列
- 面試題之【用兩個棧實現佇列】面試題佇列
- 題目9:用兩個棧實現佇列佇列
- offer通過--7兩個棧實現佇列-2佇列
- offer通過--8兩個棧實現佇列-2佇列
- 兩個棧實現佇列佇列
- leetcode155. 最小棧 1441. 用棧操作構建陣列 劍指 Offer 09. 用兩個棧實現佇列LeetCode陣列佇列
- 兩個棧實現佇列操作佇列
- [每日一題] 第七題:用兩個棧實現佇列每日一題佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- 劍指offer解析-下(Java實現)Java
- 劍指offer解析-上(Java實現)Java
- 用2個棧實現佇列佇列
- 劍指offer面試題(41-50)——java實現面試題Java
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- Java面試題:棧和佇列的實現Java面試題佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- 用JavaScript實現棧與佇列JavaScript佇列
- 劍指offer面試題11:旋轉陣列的最小數字(Java版已在牛客網AC)面試題陣列Java
- 【ZJOF】用來個棧來實現一個佇列佇列
- 用棧實現佇列,實現Enqueue和Dequeue方法佇列ENQ
- 二維陣列中的查詢——牛客劍指offer陣列
- 2020/12/5 棧佇列堆(牛客網)佇列
- leedcode-用佇列實現棧佇列
- leedcode-用棧實現佇列佇列
- 劍指offer面試題12:矩陣中的路徑(Java版已在牛客網AC)面試題矩陣Java
- 劍指 Offer 25. 合併兩個排序的連結串列 JavaScript實現排序JavaScript
- 利用棧實現佇列(C語言實現)佇列C語言
- 用佇列實現棧,用棧實現佇列,聽起來有點繞,都搞懂了就掌握了精髓!佇列