链表首尾节点的常规方案
本表对基本链表处理操作分别以五种常用的定义方案给出其实现方法。这类代码用于简单的、使用内嵌链表处理代码的应用程序。
循环,永远非空
头插入 head->next = head;
在x节点后插入t节点 t->next = x->next; x->next = t;
删除x后的节点 x->next = x->next->next;
遍历循环 t = head; do {... t = t->next; } while (t != head);
测试是否只有一个元素 if (head->next == head)
有头节点,尾节点为null
初始化 head = 0;
在x节点后插入t节点 if (x == 0) { head = t; head -> next = 0;}
else {t->next = x->next; x->next = t;}
删除x后的节点 t = x->next; x->next = t->next;
遍历循环 for (t = head; t != 0; t = t->next)
测试是否为空 if (head == 0)
有哑元头节点,尾节点为null
初始化 head = new node; head->next = 0;
在x节点后插入t节点 t->next = x->next; x->next = t;
删除x后的节点 t = x->next; x->next = t->next;
遍历循环 for (t = head->next; t != 0; t = t->next)
测试是否为空 if (head->next == 0)
有哑元头节点和尾节点
初始化 head = new node;
z = new node;
head->next = z; z->next = z;
在x节点后插入t节点 t->next = x->next; x->next = t;
删除x后的节点 x->next = x->next->next;
遍历循环 for (t = head->next; t != z; t = t->next)
测试是否为空 if (head->next == z)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?