1019. Next Greater Node In Linked List(链表)

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;
    }
};

你可能感兴趣的:(1019. Next Greater Node In Linked List(链表))