原题链接:https://leetcode-cn.com/problems/next-greater-node-in-linked-list/
单调栈
vector<int> nextLargerNodes(ListNode* head) {
stack<int> s;//维护一个单调递减的栈
vector<int> vec;
int len=0;
while(head!=NULL){
vec.push_back(head->val);
head=head->next;
len++;
}
vector<int> ans(len,0);
for(int i=len-1;i>=0;i--){
while(!s.empty()&&vec[i]>=s.top()){
s.pop();//若元素比栈顶元素大,则弹出
}
ans[i]=s.empty()?0:s.top();
s.push(vec[i]);
}
return ans;
}