我目前正在尝试解决学习C ++入门课程的编码挑战,而我只是想了解我遇到的分段错误。
我正在编写一个给定的函数,将节点插入到链表的末尾。这个想法是,给定整数输入,第一个输入将被视为列表末尾的一部分,因为它的指针成员变量为nullptr。之后,必须附加所有其他输入,以便它们的插入发生在该空节点之前。
这是函数的第一部分:
SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) {
if(head == nullptr) //if the list is empty
{
head -> next = new SinglyLinkedListNode(data);
return head;
}
return head;
}
Run Code Online (Sandbox Code Playgroud)
但是函数的这一部分给了我一个分段错误错误:
head -> next = new SinglyLinkedListNode(data);
Run Code Online (Sandbox Code Playgroud)
这些是类声明:
#include <bits/stdc++.h>
using namespace std;
class SinglyLinkedListNode {
public:
int data;
SinglyLinkedListNode *next;
SinglyLinkedListNode(int node_data) {
this->data = node_data;
this->next = nullptr;
}
};
class SinglyLinkedList {
public:
SinglyLinkedListNode *head;
SinglyLinkedList() {
this->head = nullptr;
}
};
Run Code Online (Sandbox Code Playgroud)
和主要:
int …Run Code Online (Sandbox Code Playgroud)