在C++中,释放单链表的节点可以通过自定义一个析构函数来实现。在节点类中,定义一个析构函数,该析构函数负责释放节点所占用的内存,然后在单链表的析构函数中遍历链表,依次释放每个节点,从而释放整个链表。
例如,假设节点类定义如下:
class Node {
public:
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
~Node() {
// 释放节点所占用的内存
delete next;
}
};
然后定义单链表类如下:
class LinkedList {
private:
Node* head;
public:
LinkedList() : head(nullptr) {}
~LinkedList() {
// 遍历链表,依次释放每个节点
Node* current = head;
while (current != nullptr) {
Node* temp = current;
current = current->next;
delete temp;
}
}
};
这样,在释放单链表对象时,会调用单链表类的析构函数,从而触发每个节点的析构函数,实现高效地释放单链表的节点。