在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;
}
}
};
這樣,在釋放單鏈表對象時,會調用單鏈表類的析構函數,從而觸發每個節點的析構函數,實現高效地釋放單鏈表的節點。