https://leetcode.com/problems/next-greater-node-in-linked-list/、
题目:求每个节点后面比他大的节点
思路:stack中维持递降的顺序,批量求解,时间复杂度: O(n), 空间复杂度O(n)
代码
class Solution {
public:
vector<int> nextLargerNodes(ListNode* head) {
stack<int>sa;
vector<int>ret;
vector<int>array;
int id = 0;
for( ; head != NULL; head = head->next) {
for (; !sa.empty() && head->val > array[sa.top()]; sa.pop()) {
ret[sa.top()] = head->val;
}
sa.push(id++);
array.push_back(head->val);
ret.push_back(0);
}
return ret;
}
};