在C++中管理ListNode節(jié)點的內(nèi)存通常有兩種常用的技巧:
示例代碼如下:
#include <memory>
struct ListNode {
int val;
std::shared_ptr<ListNode> next;
ListNode(int x) : val(x), next(nullptr) {}
};
int main() {
std::shared_ptr<ListNode> head = std::make_shared<ListNode>(1);
head->next = std::make_shared<ListNode>(2);
// 后續(xù)操作
return 0;
}
示例代碼如下:
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
~ListNode() {
if (next != nullptr) {
delete next;
next = nullptr;
}
}
};
int main() {
ListNode* head = new ListNode(1);
head->next = new ListNode(2);
// 后續(xù)操作
delete head;
return 0;
}
需要注意的是,手動管理內(nèi)存需要確保在適當?shù)臅r候釋放內(nèi)存,避免內(nèi)存泄漏和野指針問題。因此,推薦使用智能指針來管理ListNode節(jié)點的內(nèi)存。