【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
来源:互联网 发布:管易软件怎么样 编辑:程序博客网 时间:2024/05/22 03:09
1.删除无头单链表的非尾节点
函数原型:void DelNotTail(pNode pos);
分析:无头单链表与有头单链表的区别在于找其中的节点不能使用遍历的方法,我们这里定义一个指针cur,让它指向pos的next,然后将cur->data给pos->data,pos->next指向cur->next,最后将cur删除。
void DelNotTail(pNode pos)//删除无头单链表的非尾节点{pNode cur = pos;//替换删除cur = cur->next;pos->data = cur->data;pos->next = cur->next;free(cur);}
2.插入一个元素到无头链表指定位置函数原型:void InsertFrontNode(pNode pos, DataType d);
分析:
和第一个有类似的想法,动态开辟一个空间存放一个节点(p)的数据,定义一个cur指针,让它指向pos的下一节点,然后在pos后边插入这个元素,p->next指向cur,将p->data与pos->data交换。
void InsertFrontNode(pNode pos, DataType d)//插入一个元素到无头链表指定位置{assert(pos != NULL);pNode cur = pos;DataType tmp = 0;Node *p = malloc(sizeof(Node));//动态开辟一块内存用来存放插入的元素memset(p, 0, sizeof(Node));p->data = d;p->next = NULL;p->next = cur->next;cur->next = p;tmp = p->data;//交换数据 p->data = cur->data;cur->data = tmp;}
阅读全文
1 0
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 链表面试题逆序打印,删除无头非尾节点,非头位置插入,约瑟夫环,查找中间和倒数第k个节点
- 链表面试题(一)---删除一个无头单链表的非尾结点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点
- 简单顺序表的插入,删除,指定位置,指定元素的插入删除操作
- 链表面试题(一):逆序打印链表、无头链表删除插入节点、约瑟夫环、逆置单链表
- 【单链表经典面试题解析二】删除一个无头单链表的非尾节点(不能遍历链表)
- 面试题:一个数组插入另一个数组指定的位置
- 将目标元素插入指定位置,删除子节点,替换子节点、应用之城市联动框
- 创建一个静态链表,通过输入元素及位置插入一个元素,然后通过输入删除元素的位置删除元素。
- 创建一个链表,插入删除,指定元素
- 删除一个无头单链表的非尾节点(C语言)
- C语言:【单链表】删除一个无头单链表的非尾节点
- 删除一个无头单链表的非尾节点【每日一题】
- 链表--删除一个无头单链表的非尾节点
- 在java中使用ListNode
- 二维数组打印
- SQL Server笔记(三)视图和索引
- 【effective C++笔记】C++ 中explicit 关键字
- 最长上升子序列集锦
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- React Native 触摸事件处理详解
- 快速删除工作表中所有的文本框
- PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例
- 90%的 CTO 都做不好绩效管理?看看这个十年 IT 老兵都有什么绝活?
- eclipse编写的GBK项目转变成UTF-8编码
- Json和FastJson对比
- $(this).parents(".ex").hide("slow");
- Android MotionEvent详解