📜  cancellazione di un nodo in testa (1)

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

取消链表头部节点

在链表中,取消头部节点是一项常见的操作,因为链表的头部节点是最容易访问和識别的节点。本文将介绍如何以编程方式完成此操作。

实现

在讨论取消链表头部节点之前,我们需要使用一个结构体来表示链表节点:

typedef struct Node {
    int data;
    struct Node* next;
} Node;

我们可以使用以下代码来取消头部节点:

void deleteFirst(Node** head){
    if(*head != NULL){
        Node* temp = *head;
        *head = (*head)->next;
        free(temp);
    }
}

上述代码假设我们已经有了一个指向头节点的指针,我们使用一个双指针来使该指针指向下一个节点。然后,我们释放节点并返回链表头指针。

示例

以下示例演示如何使用deleteFirst函数取消链表头节点:

int main() {
    Node* head = NULL;

    // 添加节点
    push(&head, 1);
    push(&head, 2);
    push(&head, 3);

    // 输出链表
    printList(head);

    // 取消头节点
    deleteFirst(&head);

    // 输出链表
    printList(head);
}
结论

取消链表头节点是非常常见的操作,并且它的实现也非常简单,只需要使用双指针来指向下一个节点并释放头节点即可完成。