-
个人简介
###### 链表通用模版
#include using namespace std;
// 链表节点定义:包含数据域和指向下一节点的指针 struct Node { int data; // 存储节点数据 Node* next; // 指向下一个节点的指针(链表连接的核心) };
// 创建新节点:分配内存并初始化数据 Node* createNode(int val) { Node* newNode = new Node; // 动态分配内存 newNode->data = val; // 设置节点数据 newNode->next = nullptr; // 初始化为空(表示链表末尾) return newNode; // 返回新节点地址 }
// 头插法:将新节点插入链表头部 void headInsert(Node*& head, int val) { Node* newNode = createNode(val); // 创建新节点 newNode->next = head; // 新节点的next指向原头节点 head = newNode; // 更新头指针为新节点 }
// 打印链表:遍历并输出所有节点数据 void printList(Node* head) { Node* current = head; while (current != nullptr) { cout << current->data << " -> "; // 输出当前节点数据 current = current->next; // 移动到下一个节点 } cout << "nullptr" << endl; // 链表结束标记 }
// 销毁链表:释放所有节点内存(防止内存泄漏) void destroyList(Node*& head) { while (head != nullptr) { Node* temp = head; // 暂存当前头节点 head = head->next; // 头指针后移 delete temp; // 释放当前节点内存 } }
int main() { Node* head = nullptr; // 初始化空链表 int num, val; // num:输入数字个数 val:当前输入值
// 输入处理:读取数字个数并循环插入节点 cin >> num; for (int i = 0; i < num; i++) { cin >> val; headInsert(head, val); // 头插法插入节点 } // 输出链表内容 printList(head); // 资源清理:释放链表内存 destroyList(head); return 0;
}
-
通过的题目
-
最近活动
- 博志班作业25:宽搜 作业
- 博志班作业24:队列 作业
- 博志班作业23:栈 作业
- 博志班作业22:深度优先搜索2 作业
- 博志班作业21:深度优先搜索1 作业
- 博志班作业20:结构体 作业
- 博志班作业19:汉诺塔专题 作业
- 博志班作业18:递归 作业
- 博志班作业17:函数 作业
- 博志班作业16:字符数组与字符串 作业
- 博志班作业15:二维数组 作业
- 博志班作业14:排序 作业
- 博值班作业13:一维数组04 作业
- 博志班作业12:一维数组03 作业
- 博志班作业11:一维数组02 作业
- 博志班作业10:一维数组1 作业
- 博志班作业09(循环6) 作业
- 树2 作业
- 博志班作业08(循环05) 作业
- 博志班作业07(循环嵌套) 作业
- 博志班作业06(循环3) 作业
- 博志班作业05(循环2) 作业
- 博志班作业04 作业
- 博志班作业03 作业
- 博志班作业01 作业
-
最近编写的题解
This person is lazy and didn't write any solutions.
题目标签
- 基础问题
- 24
- 分支问题
- 22
- 数组问题
- 19
- 递归
- 9
- 简单循环
- 6
- 字符串
- 6
- 需要找规律的循环
- 5
- 二维数组
- 4
- 结构体
- 4
- 循环语句
- 4
- 函数问题
- 3
- 搜索
- 3
- 数据结构
- 2
- 容器
- 2
- 深搜
- 2
- 一维数组
- 2
- 嵌套循环
- 1
- 递归
- 1
- 容器 stack 进制转换
- 1
- 栈
- 1