📅  最后修改于: 2023-12-03 14:50:21.303000             🧑  作者: Mango
在链表数据结构中,删除第一个节点是一个常见的操作。本文将介绍在单链表和双向链表中如何删除第一个节点。
单链表是一种每个节点指向下一个节点的链表数据结构。删除第一个节点需要进行以下步骤:
如下是实现删除单链表第一个节点的C++代码:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* deleteFirstNode(ListNode* head) {
ListNode* temp = head;
head = head->next;
delete temp;
return head;
}
代码中,我们使用temp指针保存头节点,然后将head指向第二个节点,最后释放temp指向的内存空间。
双向链表是一种节点包含前后指针信息的链表数据结构。删除第一个节点需要进行以下步骤:
如下是实现删除双向链表第一个节点的C++代码:
struct DoublyListNode {
int val;
DoublyListNode *prev;
DoublyListNode *next;
DoublyListNode(int x) : val(x), prev(NULL), next(NULL) {}
};
DoublyListNode* deleteFirstNode(DoublyListNode* head) {
DoublyListNode* temp = head;
head = head->next;
head->prev = NULL;
delete temp;
return head;
}
代码中,我们使用temp指针保存头节点,然后将head指向第二个节点,最后将新的链表头节点的前向指针设为NULL,最后释放temp指向的内存空间。
总之,删除链表的第一个节点是一个常见的操作,需要注意指针的修改和内存释放。