自学内容网 自学内容网

leetcode_2487

. - 力扣(LeetCode)

这个也是一个单调的答案 也是可以极端假设 先把所有元素边遍历 边加入到栈当中 条件不符 在进行弹栈

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* removeNodes(ListNode* head) {
        vector< ListNode* > vec;
        ListNode* yummy = new ListNode(100000, head);
        ListNode* curr = head;
        vec.push_back( yummy );
        while(curr){
            while ( vec.back()->val < curr->val ){
                vec.pop_back();
            }
            vec.push_back( curr );
            curr = curr->next;
        }
        for (int i = 0; i < vec.size() - 1; ++i){
            vec[i]->next =vec[i + 1];
        }
        vec[ vec.size() - 1]->next = NULL;
        return vec[0]->next;
    }
};


原文地址:https://blog.csdn.net/m0_63056769/article/details/143700116

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!