编写一个函数,函数的功能是创建一个带头结点的单向链表,返回链表的头结点。
时间: 2024-04-22 07:24:47 浏览: 212
下面是一个示例函数,用于创建一个带头结点的单向链表,并返回链表的头结点:
```c++
#include <iostream>
struct Node {
int data;
Node* next;
};
Node* createLinkedList(int arr[], int n) {
// 创建头结点
Node* head = new Node();
head->next = nullptr;
// 尾指针,用于插入新的节点
Node* tail = head;
// 遍历数组,创建链表节点
for (int i = 0; i < n; i++) {
Node* newNode = new Node();
newNode->data = arr[i];
newNode->next = nullptr;
// 将新节点插入到链表尾部
tail->next = newNode;
tail = newNode;
}
return head;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
Node* head = createLinkedList(arr, n);
// 打印链表
Node* cur = head->next;
while (cur != nullptr) {
std::cout << cur->data << " ";
cur = cur->next;
}
// 释放链表内存
cur = head;
while (cur != nullptr) {
Node* temp = cur;
cur = cur->next;
delete temp;
}
return 0;
}
```
这个函数会根据传入的数组元素创建一个带头结点的单向链表,并返回头结点。在主函数中,我们创建了一个数组 `{1, 2, 3, 4, 5}`,然后调用 `createLinkedList` 函数创建链表,并打印链表的元素。最后,我们需要手动释放链表占用的内存。
阅读全文