C语言头插法单链表的创建
时间: 2023-08-20 20:05:57 浏览: 121
头插法单链表的创建方式是将新的节点插入到链表的头部,即将新节点作为头结点的后继节点。
具体操作如下:
1. 定义链表节点结构体。
```c
struct ListNode {
int val;
struct ListNode *next;
};
```
2. 初始化头结点,并将其 next 指针置为 NULL。
```c
struct ListNode *head = (struct ListNode *)malloc(sizeof(struct ListNode));
head->next = NULL;
```
3. 读入数据,创建新节点,并将新节点插入到链表头部。
```c
int data;
while (scanf("%d", &data) != EOF) {
struct ListNode *newNode = (struct ListNode *)malloc(sizeof(struct ListNode));
newNode->val = data;
newNode->next = head->next;
head->next = newNode;
}
```
完整代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
int main() {
// 初始化头结点
struct ListNode *head = (struct ListNode *)malloc(sizeof(struct ListNode));
head->next = NULL;
// 读入数据,创建新节点,并将新节点插入到链表头部
int data;
while (scanf("%d", &data) != EOF) {
struct ListNode *newNode = (struct ListNode *)malloc(sizeof(struct ListNode));
newNode->val = data;
newNode->next = head->next;
head->next = newNode;
}
// 遍历链表,输出链表中的数据
struct ListNode *cur = head->next;
while (cur != NULL) {
printf("%d ", cur->val);
cur = cur->next;
}
return 0;
}
```
阅读全文