linux大牛们的不带头节点的单链表

18 篇文章 0 订阅

第一篇博客是阿里大牛陈皓的分析

1.http://coolshell.cn/articles/8990.html/comment-page-1#comments

第二篇博客是问题的由来

2.http://wordaligned.org/articles/two-star-programming

void remove_if(node ** head, remove_fn rm)
{
    for (node** curr = head; *curr; )
    {
        node * entry = *curr;
        if (rm(entry))
        {
            *curr = entry->next;
            free(entry);
        }
        else
            curr = &entry->next;
    }
}



虽然个人写链表一定不会那么写,容易出错,会具有头节点信息,但是看到其中的代码,不得不令人佩服,刚开书觉得代码有问题,但是调试运行却是正确的,最后和两位博士讨论了挺长时间,结果他们也被我绕进去了,最后是北大的刘博士看了一会找出了我所画的图问题所在,才豁然开朗,发现还是用二级指针容易些,且代码简洁.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值