链表首地址已知,如何创建链表c语言
时间: 2023-12-12 22:32:59 浏览: 21
在C语言中,可以通过结构体和指针来创建链表。具体步骤如下:
1. 定义链表节点的结构体,包含数据域和指向下一个节点的指针域。
```c
struct ListNode {
int val;
struct ListNode *next;
};
```
2. 创建链表的头节点,并初始化为NULL。
```c
struct ListNode *head = NULL;
```
3. 通过循环创建链表节点,并将节点插入到链表中。
```c
int n; // 链表长度
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int val; // 节点的值
scanf("%d", &val);
struct ListNode *node = (struct ListNode*)malloc(sizeof(struct ListNode)); // 创建新节点
node->val = val; // 设置节点的值
node->next = NULL; // 将节点的指针域初始化为NULL
if (head == NULL) { // 如果链表为空,将头节点指向新节点
head = node;
} else { // 如果链表不为空,将新节点插入到链表尾部
struct ListNode *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
```
4. 最后记得释放链表节点的内存。
```c
struct ListNode *p = head;
while (p != NULL) {
struct ListNode *q = p;
p = p->next;
free(q);
}
```