在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; } } };
这样,在释放单链表对象时,会调用单链表类的析构函数,从而触发每个节点的析构函数,实现高效地释放单链表的节点。