怎么用delete释放单链表的结点动态内存
时间: 2024-05-10 18:01:31 浏览: 9
当需要释放单链表的结点动态内存时,可以按照以下步骤:
1. 定义一个指向要释放的结点的指针。
2. 将指针指向要释放的结点。
3. 释放该结点的动态内存空间。
4. 将指针指向下一个结点。
5. 重复步骤3和步骤4,直到所有结点的动态内存空间都被释放。
例如,假设有一个单链表的头指针为head,链表中每个结点都是一个包含数据和指向下一个结点的指针的结构体。下面是一个示例代码:
```
struct Node {
int data;
struct Node* next;
};
struct Node* head = NULL; // 定义单链表的头指针
// 创建链表的代码省略
// 释放链表结点的动态内存空间
void deleteList(struct Node* head) {
struct Node* temp = NULL; // 定义一个指向要释放的结点的指针
while (head != NULL) { // 循环遍历链表
temp = head; // 将指针指向要释放的结点
head = head->next; // 将指针指向下一个结点
free(temp); // 释放该结点的动态内存空间
}
}
// 示例调用函数
deleteList(head);
```
在上面的示例代码中,deleteList函数接受一个指向单链表头结点的指针作为参数。在函数中,定义了一个指向要释放的结点的指针temp,并使用while循环遍历链表。每次循环,将temp指针指向要释放的结点,将head指针指向下一个结点,然后使用free函数释放temp指向的结点的动态内存空间。最后,当head指针指向NULL时,表示所有结点的动态内存空间都已被释放,函数结束。