数据结构——单链表基本操作的实现
时间: 2024-10-20 09:13:31 浏览: 3
单链表是一种线性数据结构,每个节点包含两个部分:存储数据的部分和指向下一个节点的指针。以下是单链表的一些基本操作的实现:
1. **创建链表头结点**:
```cpp
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
创建一个空链表时,我们可以初始化一个头结点,值设为0 或 `nullptr`。
2. **插入元素**:
- 插入到开头:```ListNode* insertAtHead(ListNode* head, int val) {
ListNode* newNode = new ListNode(val);
newNode->next = head;
return newNode;
}```
- 插入到特定位置:需遍历找到该位置并插入新节点。
3. **删除元素**:
- 删除头节点:```void deleteFromHead(ListNode*& head) {
if (head != nullptr) {
ListNode* temp = head;
head = head->next;
delete temp;
}
}``
- 删除指定值的节点:需要遍历查找并更新相邻节点的指针。
4. **查找元素**:
```bool search(ListNode* head, int target) {
ListNode* current = head;
while (current != nullptr && current->val != target) {
current = current->next;
}
return current != nullptr;
}```
5. **打印链表**:
```void printList(ListNode* head) {
ListNode* temp = head;
while (temp != nullptr) {
cout << temp->val << " ";
temp = temp->next;
}
cout << endl;
}```
阅读全文