c++ - 如何从内存中删除动态添加的节点?

标签 c++ pointers memory linked-list nodes

我在链表中​​有一个节点定义为:

class Node {
public:
    Node* next = nullptr;
    int value;
};

我将节点插入到列表中:

void insertNode(Node* &head, int value) {

    Node* newNode = new Node;
    newNode->value = value;
    newNode->next = head;

    head = newNode;
}

我想在另一个函数中删除该列表中的一些节点

void deleteNode(Node* head) {
    // ...
}

如何从内存中删除现在未使用的节点?

最佳答案

您将通过 1) delete 删除节点。 2) 将前一个节点调整为指向删除节点之后的节点(如果删除的节点是最后一个节点,则为 nullptr)。

关于c++ - 如何从内存中删除动态添加的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649657/

相关文章:

c - 为什么 node* root = malloc(sizeof(int)) 分配 16 个字节的内存而不是 4 个?

c++ - 为什么 cin inside while 不停地获取用户输入?

c++ - 将我的对象声明为 extern 会出现 "not declared in this scope"错误

c++ - 在 C++ 类中将指针作为成员字段是不是很愚蠢?

c - int 类型的数组不会从函数调用中修改

音频缓冲区上的 java.lang.OutOfMemoryError

performance - Haskell 的局部属性是什么?

c++ - 您将如何使用二维来处理一维内存?

c++ - 简单快速的 C++ 压缩库/类

c++ - 在远程 session 上运行时,LVS_EX_DOUBLEBUFFER 是否正确地不加倍缓冲?