带头结点的单链表创建
时间: 2024-09-22 22:08:14 浏览: 38
带头结点的单链表是一种常见的数据结构,它包含一个额外的节点作为列表的第一个元素,称为头结点。这种设计是为了方便操作链表的头部,比如插入和删除。以下是创建带头结点单链表的基本步骤:
1. 定义链表节点结构:通常包括两个成员,一个是存储数据的`data`字段,另一个是指向下一个节点的引用,即`next`。
```c++
struct ListNode {
int data; // 节点的数据域
ListNode* next; // 指针域,指向下一个节点
};
```
2. 创建头结点:初始化一个空的头结点,其`data`通常是0或特殊的值表示链表开始,`next`指针初始化为`NULL`。
```c++
ListNode* head = new ListNode{0, NULL}; // 使用C++,或者是new ListNode(0) in C
```
3. 插入新节点:当你需要添加新节点时,创建一个新的`ListNode`,然后设置它的`next`指向当前头结点的`next`,最后更新头结点的`next`指向新节点。
```c++
ListNode* newNode = new ListNode(data);
newNode->next = head->next;
head->next = newNode;
```
4. 删除节点:删除某个节点可能涉及到修改前一个节点的`next`指针,使其指向被删除节点的下一个节点。
```c++
if (head->next != NULL) {
ListNode* temp = head->next;
if (temp->next != NULL && temp->data == targetData) {
head->next = temp->next;
delete temp;
} else {
while (temp->next != NULL && temp->data != targetData) {
temp = temp->next;
}
if (temp->next != NULL) {
delete temp->next;
temp->next = NULL;
}
}
}
```
阅读全文