移除单向链表中一个节点的代码进阶
来源:互联网 发布:nginx 设置逆向代理 编辑:程序博客网 时间:2024/06/03 20:46
struct linklist {
char type;
linklist * nextnode;
}
linklist *head ;
新手程序员
void remove_list_element(linklist *element){
linklist *c = head;
linklist *pre = NULL;
while(c != element){
pre = c;
c = c->next;
}
if(pre == NULL){
head = c->nextnode;
}else{
pre->nextnode = c->nextnode;
}
}
比较有经验的程序员
void remove_list_element(linklist *element){
unsigned int indirect = &head;
while(*indirect !=element){
indirect = &(*indirect)->nextnode;
}
*indirect = element->nextnode;
}
引申到实际生活中,就好比要在一个排好队的队伍中找到A,将它从队伍中移出来。找到这个人有两种方式
1、直接在队伍中一个一个询问是不是A,如果是,就需要告诉A的前一个人C,他后面的人以后不再是A,而换成了B。
2、在队伍中询问A的前一个人C它的后面是不是A,如果是,就告诉C它的后面以后换成B。
后一种方法,相比于前一种方法,有以下优点:
1、在寻找A的过程中只麻烦了一个人,效率更快。
2、兼容了A这个人排在队伍第一个这种特殊情况。
3、很明显,第二种的代码较为简短
阅读全文
1 0
- 移除单向链表中一个节点的代码进阶
- Redis集群进阶-移除节点
- 向升序单向链表中插入一个节点
- 向升序单向链表中插入一个节点
- 向升序单向链表中插入一个节点
- 删除单向链表中重复的节点
- dom03节点的插入移除克隆
- 输出一个单向链表的中间节点
- 华为OJ 向升序单向链表中插入一个节点
- 华为机试题:向升序单向链表中插入一个节点
- mongodb 移除节点
- 移除DOM节点
- 移除节点
- 给出一个单向链表的头指针,输出该链表中倒数第K个节点的指针
- 单向链表中,如何在给定节点前快速插入一个节点?
- 单向链表中,如何在给定节点前快速插入一个节点?
- 程序员面试金典2.1:编写代码,移除未排序的链表中的重复节点
- 嵌入式 单向链表中节点链表化
- Spring事务管理中@Transactional的propagation参数
- 次小生成树 ACM Contest and Blackout
- Linux如何查看JDK的安装路径
- 前端面试知识点锦集(JavaScript篇)绝对干货
- LeetCode 538. Convert BST to Greater Tree
- 移除单向链表中一个节点的代码进阶
- opengl-解决cuemap天空盒子衔接处显示立方体边的问题
- 4 操作Docker 容器
- Java基本类型和引用类型(转)
- Mybatis基于注解结合Java编写Sql语句进行CRUD
- Base64
- 页面导入样式时,使用link和@import有什么区别?
- 掌握好写js代码相应的调试工具之——火狐调试工具-DevTools
- Angular2学习资源汇总