用C语言头插法建立链表
时间: 2023-09-25 16:16:07 浏览: 99
以下是使用C语言头插法建立链表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode* next;
};
struct ListNode* createList(int* arr, int n) {
struct ListNode* head = NULL;
for (int i = 0; i < n; i++) {
struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = arr[i];
node->next = head;
head = node;
}
return head;
}
void printList(struct ListNode* head) {
while (head != NULL) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
struct ListNode* head = createList(arr, n);
printList(head);
return 0;
}
```
在上面的示例代码中,我们定义了一个`struct ListNode`结构体来表示链表的节点,其中`val`表示节点的值,`next`表示下一个节点的地址。
`createList`函数用于创建一个包含n个节点的链表,它接受一个整型数组arr和数组长度n作为参数,返回链表的头指针。在函数中,我们使用头插法来逐个插入节点到链表中,最后返回头节点。
`printList`函数用于打印链表中的所有节点的值,它接受链表的头指针作为参数,使用while循环遍历链表,逐个打印节点的值。
在`main`函数中,我们定义了一个整型数组arr和数组长度n,然后调用`createList`函数创建了一个包含n个节点的链表,并将链表的头指针赋值给head变量。最后调用`printList`函数打印链表中的所有节点的值。
阅读全文