General
155 Min Stack
Use 2 stacks
// |1|
// |3| |1|
// |2| |2|
// stack minStack
public class MinStack{
private Stack<Integer> stack;
private Stack<Integer> minStack;
public MinStack() {
this.stack = new Stack<Integer>();
this.minStack = new Stack<Integer>();
}
void push(int number) {
stack.push(number);
if (minStack.empty()) minStack.push(number);
else{
if (number <= minStack.peek()) minStack.push(number);
}
}
int pop() {
if (stack.peek().equals(minStack.peek())){ // compare using equals()
minStack.pop();
}
return stack.pop();
}
int min() {
return minStack.peek();
}Binary Tree node increasing order
curQueue 儲存當前node
nxtQueue 儲存下一層node
Last updated
Was this helpful?