【发布时间】:2021-07-20 15:44:21
【问题描述】:
问题是使用构造函数来设置一个节点, 并使用析构函数确保 prev 和 next 正确连接。
class ListNode {
public:
int data;
ListNode *prev, *next;
ListNode(int Data, ListNode* Prev, ListNode *Next);
~ListNode();
};
这是我的代码
class ListNode {
public:
int data;
ListNode *prev, *next;
ListNode(int Data, ListNode *Prev, ListNode *Next) {
data = Data;
prev = Prev;
next = Next;
}
~ListNode() {
prev -> next = next;
next -> prev = prev;
}
};
我遇到了运行时错误。如何解决这个问题。 谢谢
【问题讨论】:
-
你遇到了什么错误?
-
@d901203 析构函数可能是默认的,因为没有什么要显式删除。
-
你能依赖
prev和next总是指向一个有效的对象,尤其是总是!= nullptr吗? -
我应该如何修改我的代码?
-
不确定它是否能解决您的问题(因为您没有发布运行时错误或任何重现错误的代码),但
if (prev) { prev->next = next; }和if(next) {next->prev = prev;}可以提供帮助
标签: c++ class constructor destructor doubly-linked-list