C语言创建空的单链表并赋值 {1, 2, 3} - 代码详解
#include <stdio.h> #include <stdlib.h>
// 定义单链表结构体 struct Node { int data; // 数据域 struct Node* next; // 指针域 };
int main() { struct Node* head = NULL; // 定义头节点并初始化为空 struct Node* tail = NULL; // 定义尾节点并初始化为空
// 循环创建节点
for(int i=1; i<=3; i++) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); // 动态分配内存
newNode->data = i; // 赋值
newNode->next = NULL; // 指针域初始化为空
if(head == NULL) { // 第一个节点
head = newNode;
tail = newNode;
}
else { // 不是第一个节点
tail->next = newNode;
tail = newNode;
}
}
// 输出链表中的元素
struct Node* p = head;
while(p != NULL) {
printf("%d ", p->data);
p = p->next;
}
// 释放内存
p = head;
while(p != NULL) {
struct Node* tmp = p;
p = p->next;
free(tmp);
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nwjC 著作权归作者所有。请勿转载和采集!