c/c++数组怎么转换链表举例说明
时间: 2023-04-11 20:00:41 浏览: 247
可以使用指针来实现数组和链表之间的转换。具体来说,可以定义一个指向链表节点的指针,然后遍历数组中的元素,将每个元素插入到链表中。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* arrayToList(int* nums, int size) {
struct ListNode* head = NULL;
struct ListNode* tail = NULL;
for (int i = 0; i < size; i++) {
struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = nums[i];
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
void printList(struct ListNode* head) {
while (head != NULL) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
int main() {
int nums[] = {1, 2, 3, 4, 5};
int size = sizeof(nums) / sizeof(nums[0]);
struct ListNode* head = arrayToList(nums, size);
printList(head);
return 0;
}
```
在上面的代码中,我们定义了一个结构体 `ListNode`,表示链表节点。然后定义了一个函数 `arrayToList`,用于将数组转换为链表。在函数中,我们遍历数组中的每个元素,创建一个新的节点,并将其插入到链表中。最后返回链表的头节点。我们还定义了一个函数 `printList`,用于打印链表中的所有元素。在 `main` 函数中,我们调用 `arrayToList` 函数将数组转换为链表,并调用 `printList` 函数打印链表中的所有元素。
阅读全文