题解方法
栈
- 一个栈作为输入栈,当 appendTail 操作时 push 数据
- 一个栈作为输出栈,当 deleteHead 操作时,若该栈为空,则将输入栈的所有数据出栈并入输出栈,此时该栈的出栈顺序满足 deleteHead 要求
核心代码
栈
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void appendTail(int value) { inStack.push(value); }
public int deleteHead() { if (outStack.isEmpty()) { while (!inStack.isEmpty()) { outStack.push(inStack.pop()); } } if (outStack.isEmpty()) { return -1; } else { return outStack.pop(); } }
|
题目来源
剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)