**

    用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
    示例 1:
    输入:[“CQueue”,”appendTail”,”deleteHead”,”deleteHead”]
    [[],[3],[],[]]
    输出:[null,null,3,-1]
    示例 2:
    输入:
    [“CQueue”,”deleteHead”,”appendTail”,”appendTail”,”deleteHead”,”deleteHead”]
    [[],[],[5],[2],[],[]]
    输出:[null,-1,null,null,5,2]
    提示:
    1 <= values <= 10000
    最多会对 appendTail、deleteHead 进行 10000 次调用


    1. class CQueue {
    2. Stack<Integer> stk1;
    3. Stack<Integer> stk2;
    4. public CQueue() {
    5. stk1 = new Stack();
    6. stk2 = new Stack();
    7. }
    8. public void appendTail(int value) {
    9. stk1.push(value);
    10. }
    11. public int deleteHead() {
    12. if(stk2.isEmpty()) {
    13. while(!stk1.isEmpty()) {
    14. stk2.push(stk1.pop());
    15. }
    16. }
    17. if(stk2.isEmpty()){
    18. return -1;
    19. } else {
    20. return stk2.pop();
    21. }
    22. }
    23. }
    24. /**
    25. * Your CQueue object will be instantiated and called as such:
    26. * CQueue obj = new CQueue();
    27. * obj.appendTail(value);
    28. * int param_2 = obj.deleteHead();
    29. */