class MinStack {
Node head;
public void push(int x) {
if (head == null) {
head = new Node(x);
} else {
Node temp = new Node(x);
temp.min = Math.min(head.min, x);
temp.next = head;
head = temp;
}
}
public void pop() {
if (head == null) {
return;
} else {
head = head.next;
}
}
public int top() {
if (head == null) {
return Integer.MAX_VALUE;
} else {
return head.value;
}
}
public int getMin() {
if (head == null) {
return Integer.MAX_VALUE;
} else {
return head.min;
}
}
}
class Node {
int value;
int min;
Node next;
Node(int x) {
value = x;
min = x;
next = null;
}
}
07-12