//链表首尾节点的常规方案
//示例代码片段,不能编译
///////////////////////////////////////////////////////////////
//循环,永远非空
head->next = head; //头插入
t->next = x->next; x->next = t; //x节点后插入t节点
x->next = x->next->next; //删除x后的节点
t=head;
do{ t=t->next; } while(t != head) //循环遍历
if(head->next == head) //测试是否只有一个元素
///////////////////////////////////////////////////////////////
//有头节点,尾节点为null
head = 0; //初始化
if(x==0) {head=t; head->next = 0;} //在x节点后插入t节点
else { t->next=x->next; x->next=t;}
t = x->next; x->next=t->next; //删除x后的节点
//x->next = x->next->next 表达更简单
for(t=head; t!=0; t=t->next) //遍历循环
if(head == 0) //测试是否为空
///////////////////////////////////////////////////////////////
//有哑元头节点,尾节点为null
head = new node; head->next=0; //初始化
t->next = x->next; x->next = t; //x节点后插入t节点
t = x->next; x->next=t->next; //删除x后的节点
//x->next = x->next->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;
t->next=x->next; x->next=t; //在x节点后插入t节点
x->next = x->next->next //删除x后的节点
for(t=head->next; t!=z; t=t->next) //遍历循环
if(head->next == z) //测试是否为空
原文链接: https://www.cnblogs.com/wouldguan/archive/2012/10/18/2730222.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/66213
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!