码迷,mamicode.com
首页 > 其他好文 > 详细

二级指针删除链表元素

时间:2014-07-19 09:38:58      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:style   color   strong   io   for   代码   

利用二级指针删除链表内一个元素,传统的做法是:找到将要删除元素的前一个指针,然后再删除当前元素。代码示例:

void delete_node( elem_type x, struct node* l )
{
????struct node* p = find_prev ( x, l );

????if ( !p->next ) {
????????printf ( "element %d not in the struct node*\n", x );
????????return;
????}

????struct node* tmp = p->next;
????p->next = p->next->next;

????free ( tmp );
}

而通过二级指针的方法,则不需要如此。

void delete_version_2 ( struct node** head, elem_type x )
{
????for ( struct node** curr = head; *curr; ) {
????????struct node* entry = *curr;
????????if ( entry->elem == x ) {
????????????*curr = entry->next;
????????????free ( entry );
????????} else {
????????????curr = &entry->next;
????????}
????}
}

二级指针删除链表元素,布布扣,bubuko.com

二级指针删除链表元素

标签:style   color   strong   io   for   代码   

原文地址:http://www.cnblogs.com/x5lcfd/p/3854226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!