📜  数据结构示例-从头部删除单链表节点(1)

📅  最后修改于: 2023-12-03 14:54:57.232000             🧑  作者: Mango

数据结构示例-从头部删除单链表节点

在数据结构中,单链表是一种常见的线性数据结构。单链表由节点组成,每个节点都包含一个数据和一个指向下一个节点的指针。删除单链表中的节点是一个常见的操作,本文将介绍如何从单链表的头部删除节点。

实现思路

从单链表头部删除节点的过程如下:

  1. 判断单链表是否为空,如果为空则直接返回;
  2. 如果单链表不为空,则将头节点的下一个节点设置为新的头节点;
  3. 将原来的头节点从内存中释放。
代码实现

以下是删除单链表头节点的代码实现:

struct ListNode {
    int val;
    struct ListNode *next;
};

void deleteNode(struct ListNode** head) {
    if(*head == NULL) { // 判断单链表是否为空
        return;
    }
    struct ListNode* temp = *head; // 保存旧的头节点,以便释放内存
    *head = (*head)->next; // 将旧的头节点的next指向新的头节点
    free(temp); // 释放旧的头节点的内存
}
使用示例

以下是如何使用上述函数删除单链表头节点的示例代码:

struct ListNode* head = NULL;
// 创建单链表节点...
deleteNode(&head); // 删除头节点
总结

以上是从单链表头部删除节点的实现思路及代码示例。删除单链表节点操作需要保证单链表不为空,并在释放内存后将头节点指向新的头节点。