class Solution {
public:
void push(int value) {
m=::min(m,value);
auto*k=new TreeNode(value);
k->right=st;
st=k;
}
void pop() {
if(m==st->val){
auto *k=st->right;
m=k->val;
while(k!=nullptr)m=::min(m,k->val),k=k->right;
}
st=st->right;
}
int top() {
return st->val;
}
int min() {
return m;
}
private:
int m=0x3f;
TreeNode*st;
};

京公网安备 11010502036488号