定义节点结构并用指针连接,通过new创建节点并链接,可封装为createList函数从数组构建链表,最后需deleteList释放内存防止泄漏。

在C++中创建单向链表,核心是定义节点结构体并使用指针将节点依次连接。整个过程不复杂,但需要注意内存管理和指针操作的准确性。
定义链表节点结构
单向链表的每个节点包含两部分:数据域和指向下一个节点的指针。通常用struct来定义节点类型。
struct ListNode {int data; // 数据域,可以是任意类型
ListNode* next; // 指针域,指向下一个节点
// 构造函数(可选)
ListNode(int val) : data(val), next(nullptr) {}
};
构造函数用于简化节点创建时的初始化操作。
手动创建链表节点
通过new关键字动态分配内存,逐个创建节点,并用指针连接。
立即学习“C++免费学习笔记(深入)”;
// 创建第一个节点ListNode* head = new ListNode(1);
ListNode* second = new ListNode(2);
ListNode* third = new ListNode(3);
// 连接节点
head->next = second;
second->next = third;
third->next = nullptr; // 尾节点指向空
此时head就是链表的头指针,通过它可以访问整个链表。
一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!
封装成函数方便使用
为了提高复用性,可以写一个函数来创建链表,比如从数组构建链表。
ListNode* createList(int arr[], int n) {if (n == 0) return nullptr;
ListNode* head = new ListNode(arr[0]);
ListNode* current = head;
for (int i = 1; i current->next = new ListNode(arr[i]);
current = current->next;
}
return head;
}
调用示例:
int values[] = {1, 2, 3, 4, 5};int size = 5;
ListNode* myList = createList(values, size);
注意事项
使用动态内存创建链表后,记得在程序结束前释放内存,防止泄漏。
void deleteList(ListNode* head) {ListNode* temp;
while (head != nullptr) {
temp = head;
head = head->next;
delete temp;
}
}
基本上就这些。掌握节点定义、动态创建和指针链接,就能灵活实现单向链表。关键是理解指针如何串联数据,形成逻辑上的“链”。










