題目描述
用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。
解題思路
- 既然是實現隊列,那麼就要保證先進去的元素先出來。
- 可以先講元素都放入一個棧中,這樣所有的元素都是倒序。
- 將棧中元素都出棧,存入另外一個棧中,這樣所有的元素順序都變成正序了。不過要判斷以下另一個棧是否爲空,不爲空的話,就不用放進去。
代碼
import java.util.Stack;
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() {
if (stack2.empty() && stack1.empty())
throw new RuntimeException();
if (stack2.empty()) {
while (!stack1.empty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
文章彙總見這裏 >>劍指Offer彙總<<
更多精彩文章見這裏 >>我的學習小站<< & 更多好玩見這裏 >>技術雜談<<