Trying to reverse a linked list. I have tried everything - it gives me 'write access violation - temp was nullptr' on the following line:
temp->next = reversed.top();
More context:
struct ListNode {
int data;
ListNode* next;
ListNode() : data(0), next(nullptr) {}
ListNode(int value) : data(value), next(nullptr) {}
ListNode(int value, ListNode* pointer) : data(value), next(pointer) {}
};
int main()
{
ListNode* third = new ListNode(12, nullptr);
ListNode* second = new ListNode(8, third);
ListNode* head = new ListNode(5, second);
stack<ListNode*> reversed;
ListNode* temp = head;
while (temp) {
// Push all the nodes in to stack
reversed.push(temp);
temp = temp->next;
}
head = temp;
while (!reversed.empty()) {
// Store the top value of stack in list
temp->next = reversed.top();
// Pop the value from stack
reversed.pop();
// update the next pointer in the list
temp = temp->next;
}
temp->next = nullptr;
}