删除一个无头单链表的非尾节点
来源:互联网 发布:最新电影免费观看软件 编辑:程序博客网 时间:2024/06/05 10:56
//删除非尾节点pos,无头结点
//把pos的下一个值给pos,pos的下一个节点Free掉
void EraseNonTail(Node* pos)
{
Node* next;
assert(pos && pos->next);//断言保证Pos和它的下一个节点都存在,这也保证了不删除尾节点
next = pos->next;//先确定next是pos的下一个节点
pos->data = next->data;//把next的值给pos
pos->next = next->next;//让pos指向next的下一个节点,把next节点跳过
free(next);//释放next
}
void TestTopic1()
{
Node* pos = NULL;
Node* list = NULL;
PushBack(&list, 1);
PushBack(&list, 2);
PushBack(&list, 3);
PushBack(&list, 4);
PrintList(list);
pos = Find(list, 3);
EraseNonTail(pos);
PrintList(list);
}
输出结果:
1234
124
//把pos的下一个值给pos,pos的下一个节点Free掉
void EraseNonTail(Node* pos)
{
Node* next;
assert(pos && pos->next);//断言保证Pos和它的下一个节点都存在,这也保证了不删除尾节点
next = pos->next;//先确定next是pos的下一个节点
pos->data = next->data;//把next的值给pos
pos->next = next->next;//让pos指向next的下一个节点,把next节点跳过
free(next);//释放next
}
void TestTopic1()
{
Node* pos = NULL;
Node* list = NULL;
PushBack(&list, 1);
PushBack(&list, 2);
PushBack(&list, 3);
PushBack(&list, 4);
PrintList(list);
pos = Find(list, 3);
EraseNonTail(pos);
PrintList(list);
}
输出结果:
1234
124
阅读全文
0 0
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点(C语言)
- C语言:【单链表】删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点【每日一题】
- 链表--删除一个无头单链表的非尾节点
- 无头单链表的非尾节点删除
- 删除无头单链表的非尾节点
- 【链表】删除一个无头单链表的非尾节点 以及从尾到头打印单链表
- 删除一个无头单链表的非尾节点+从尾到头打印单链表
- 17_7_17:删除一个无头单链表的非尾节点。从尾到头打印单链表
- 笔试/面试:删除一个无头单链表的非尾节点 ,从尾到头打印单链表
- 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表
- 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- day05删除一个无头单链表的非尾节点 +从尾到头打印单链表+复杂链表的复制
- Redis学习05——存储字符串列表(list)
- 安卓设置图片匀速旋转360°
- 1.url
- codevs 1155 金明的预算方案(背包)
- gcc预处理、编译、汇编、链接详解
- 删除一个无头单链表的非尾节点
- TCP/IP学习笔记(2)-数据链路层
- Ubuntu 14.04系统下搭建hustoj
- 买苹果的最少袋数
- 配置tomcat及集成到eclipse
- Ubuntu 截图快捷键设置
- 9-27 反思
- RAM ROM
- unit 1 Linux下基本操作