精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/implement-stack-using-queues/description/ 225. Implement Stack using Queues 請用兩個 Queue 實現 Stack 的 psuh、pop、top、isEmpty 操作。 Example 1: Input ["MyStack", "push", "push", "top", "pop", "empty"] [[], [1], [2], [], [], []] Output [null, null, null, 2, 2, false] Explanation MyStack myStack = new MyStack(); myStack.push(1); myStack.push(2); myStack.top(); // return 2 myStack.pop(); // return 2 myStack.empty(); // return False 思路: 1.Queue pop 的是第一個加入的元素,所以我們把所有元素 Pop 出來暫存,並保留/移除 最後一個元素返回即可。 Java Code: --------------------------------------------- class MyStack { private Queue<Integer> queue; public MyStack() { queue = new LinkedList<>(); } public void push(int x) { queue.offer(x); } public int pop() { Queue<Integer> temp = new LinkedList<>(); while (queue.size() != 1) { temp.offer(queue.poll()); } int item = queue.poll(); queue = temp; return item; } public int top() { Queue<Integer> temp = new LinkedList<>(); while (queue.size() != 1) { temp.offer(queue.poll()); } int item = queue.poll(); temp.offer(item); queue = temp; return item; } public boolean empty() { return queue.isEmpty(); } } --------------------------------------------- -- https://i.imgur.com/sjdGOE3.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.73.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1693212636.A.385.html
UsadaBeguora: 大獅 08/28 16:51