c++

C++单链表的节点如何高效地释放

小樊
128
2024-07-16 20:23:44
栏目: 编程语言

在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;
        }
    }
};

这样,在释放单链表对象时,会调用单链表类的析构函数,从而触发每个节点的析构函数,实现高效地释放单链表的节点。

0
看了该问题的人还看了