Ошибка выполнения при попытке доступа к стеку, содержащему указатели - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь перевернуть узлы в связанном списке между двумя заданными индексами. Я использую для этого стек, в котором содержатся все соответствующие узлы, но я не могу получить доступ к узлам, получая ошибку времени выполнения с этой конкретной строкой

p.first-> next = s.top ();

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
    */
    using namespace std;
    #include <stack>
    #include <pair>
    class Solution {
    public:
         ListNode* reverseBetween(ListNode* head, int m, int n) {
         ListNode* nd = head;
         int count = 0;
         stack<ListNode*> s;
         pair<ListNode*, ListNode*> p;
        while(nd->next != NULL){
            count ++;
            if(count = m-1){
                p.first = nd;
            }
            if(count >= m and count <= n){
                s.push(nd);
            }

            if(count = n+1){
                p.second = nd;
            }
            nd=nd->next;
        }

        (p.first)->next = s.top()
        ListNode* temp =s.top();
        s.pop();
        /*
        while(!s.empty()){
            temp->next = s.top();
            s.pop();
            temp = temp->next;
        }
        temp->next = p.second;
        */
        return head;
    }
};
...