C++ 链表 delete 问题

img


如图 这几个 Node 都是在 堆空间的 我在 释放空间的 时候 是 只delete 头节点的指针 还是 抖腰delete
我的理解是 头 被delete了 那么 后面的 就连着 被 delete了

head指向的node删除只是这个节点对应的内存,不代表全部。要删除全部节点,需要一个循环才可以的

void deleteLinkedList(LinkedList &list)
{
    Node *p = list->first;
    while (*p) {
        Node *q = p;
        p = p->next;
        delete q;
    }
    list->first = nullptr;
    list->size = 0;
}