Linus的二级指针思想
来源:互联网 发布:程序员的自我修养mobi 编辑:程序博客网 时间:2024/05/08 16:41
void DelNode(Node head,int num){ Node h = head->next; Node prev = head; for (;h->next;) { printf("prev=%p curr=%p\n",prev->next,h->next); if (h->num == num) { prev->next = h->next; free(h); break; } h=h->next; prev=prev->next; } return ;}
上面的方法是学校里交授的方法,即需要始终保存当前节点的前一个节点,因为删除操作时,你需要前一个节点的next域。但是,Linus认为这样做是不理解指针的做法。
如果开发者能够理解指针,只需要使用“指向该条目的指针”并初始化list_head,然后贯穿列表,此时无需使用任何条件语句即可删除该条目。即使用二级指针。
void DelNode1(Node* head,int num){ Node *curr = head; for(;*curr;) { Node rmp = *curr; printf("curr=%p *curr=%p rmp=%p num=%d\n",curr,*curr,rmp,rmp->num); if (rmp->num == num) { *curr = rmp->next; free(rmp); break; } curr=&rmp->next;//二级指针,curr存储的是指向下一个节点的地址,即上一个节点地址 } return ;}
- Linus的二级指针思想
- linus大神的二级指针
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表-实例代码
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Linus:利用二级指针删除单向链表
- Android : 如何在布局文件中添加自己的组件
- sql server SCHEMA(架构)
- sharepoint 2010 扩展调查字段属性系列-投票系统扩展方案
- 很简短,但读完你会感触良多!
- 安卓软件在国内市场发布,为何需要等待这么长的审核时间?
- Linus的二级指针思想
- The Most Important Algorithms (in CS and Math)
- Neo4j初步测试
- 〖Java类集〗_范例讲解:一对多关系笔记
- Hoj 1181 Ugly Numbers
- Java Date,long,String 日期转换
- 关于C#数据类型之间转换的讨论
- 转: C#中的委托,匿名方法、泛型委托和Lambda表达式表达式演变过程
- C++中delete 与 delete[]