用C语言编写一段代码,创建一个包括头结点和三个结点(4,2,1)的单链表结构体
时间: 2024-10-12 10:16:10 浏览: 31
在C语言中,你可以创建一个名为`ListNode`的结构体来表示单链表的节点,包含整数值和指向下一个节点的指针。这里是一个简单的例子,演示如何创建包含三个节点(4, 2, 1)的单链表:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct ListNode {
int val; // 节点值
struct ListNode* next; // 指向下一个节点的指针
};
// 创建一个新的链表节点
struct ListNode* createNode(int data) {
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = data;
newNode->next = NULL; // 初始时下一个节点为NULL
return newNode;
}
// 连接两个节点,构建包含头节点的链表
void createLinkedList(struct ListNode** head, int arr[], int length) {
*head = createNode(arr[0]); // 将第一个节点设为头节点
for (int i = 1; i < length; i++) {
struct ListNode* newNode = createNode(arr[i]);
(*head)->next = newNode; // 将当前节点的next指向新节点
*head = newNode; // 更新头节点为新节点
}
}
// 打印链表
void printList(struct ListNode* node) {
while (node != NULL) {
printf("%d -> ", node->val);
node = node->next;
}
printf("NULL\n");
}
int main() {
int arr[] = {4, 2, 1};
int length = sizeof(arr) / sizeof(arr[0]);
// 创建包含头节点的链表
struct ListNode* head = NULL;
createLinkedList(&head, arr, length);
// 打印链表
printList(head);
return 0;
}
```
在这个代码中,`createLinkedList`函数用于创建链表,`printList`函数用于打印链表内容。注意,`main`函数中我们假设了输入的数组`arr`已经按照需要的顺序排列。
阅读全文