剑指 Offer 09. 用两个栈实现队列

  1. class CQueue {
  2. Deque<Integer> stack1;
  3. Deque<Integer> stack2;
  4. public CQueue() {
  5. stack1 = new LinkedList<Integer>();
  6. stack2 = new LinkedList<Integer>();
  7. }
  8. public void appendTail(int value) {
  9. stack1.push(value);
  10. }
  11. public int deleteHead() {
  12. // 如果第二个栈为空
  13. if (stack2.isEmpty()) {
  14. while (!stack1.isEmpty()) {
  15. stack2.push(stack1.pop());
  16. }
  17. }
  18. if (stack2.isEmpty()) {
  19. return -1;
  20. } else {
  21. int deleteItem = stack2.pop();
  22. return deleteItem;
  23. }
  24. }
  25. // 作者:LeetCode-Solution
  26. // 链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/solution/mian-shi-ti-09-yong-liang-ge-zhan-shi-xian-dui-l-3/
  27. }