class CQueue { // 注意 Stack 是 empty(),而 Deque 是 isEmpty() Stack<Integer> s1; Stack<Integer> s2; //Deque<Integer> s1; //Deque<Integer> s2; public CQueue() { s1 = new Stack<>(); s2 = new Stack<>(); //s1 = new LinkedList<>(); //s2 = new LinkedList<>(); } public void appendTail(int value) { s1.push(value); } public int deleteHead() { if (s2.empty()) { while (!s1.empty()) { s2.push(s1.pop()); } } if (s2.empty()) { return -1; } else { return s2.pop(); } } } /** * Your CQueue object will be instantiated and called as such: * CQueue obj = new CQueue(); * obj.appendTail(value); * int param_2 = obj.deleteHead(); */