当前位置:  操作系统/服务器>linux

给定链表中间节点指针,删除中间节点的方法

    来源: 互联网  发布时间:2014-10-14

    本文导语:  问题如下输入:链表 a->b->c->d->e中指向节点c的指针输出:无返回值,但新链表变为a->b->d->e解答:想了好久没想出来,看了提示才知道解法的。这里用到了一个小技巧。要删除中间节点,但是我们不知道要删除节点的上一个节...

问题如下
输入:链表 a->b->c->d->e中指向节点c的指针
输出:无返回值,但新链表变为a->b->d->e
解答:
想了好久没想出来,看了提示才知道解法的。这里用到了一个小技巧。要删除中间节点,但是我们不知道要删除节点的上一个节点p,所以无法通过修改指针的方法(p->next=del->next)来删除节点,但知道要删除节点的后一个节点,那么我们换一个思路,把要删除的节点的数据与该节点的后一个节点的数据交换,然后删除后一个节点,从而达到目的。但是该方法不能删除最后一个节点,原因显而易见。
代码如下:

// a tricky solution,can't delete the last one element
int delete_node(NODE* node) {
  int data;
  NODE *p=node->next;
   node->data=p->data;
   node->next=p->next;
  free(p);
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Strings(字符串) 成员 at():按给定索引值返回字符
  • 只给一个目录路径,怎样再在其下建立一个新的目录(给定目录名),然后再在其下建立一个新的文件(给定文件名)?
  • php开源软件 169IT
  • 如何用sed命令从文件中提取与给定字符串的行?
  • C++ Maps 成员 upper_bound():返回键值>给定元素的第一个位置
  • 在shell脚本中,给定一个文件全路径(字符串),如何获取其文件夹?(内详)
  • C++ Maps 成员 lower_bound():返回键值>=给定元素的第一个位置
  • 怎么用JAVA删除一个给定的目录,并包括次目录下的文件。
  • C++ MultiMaps 成员 upper_bound():返回键值>给定元素的第一个位置
  • 如何将给定的年月日转换为millis??
  • 进行内存分配时为什么要对给定的大小重新计算大小???
  • 下载给定网页上图片的方法
  • 请问如何对给定的表格的一个单元格的编辑设置成JcomboBox,但不是整列的,只是一个单元格。
  • 给定开始和结束行,怎么从一个文本文件中提取一段文本?
  • 有关gdb调试问题 如何实现让一个循环运行给定数目的次数(或条件满足停止)
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 谁有这样的算法:给定两个区域,用直线或折线来连接,以及移动其中线段的算法。
  • 怎样得到给定任意一周是从哪天开始的?
  • 用一个命令行统计出给定目录中有多少个子目录
  • 给定一个URL如http://www.sina.com.cn如何列举出它下面的所有文件?
  • linux怎么根据给定的条件查询多个日志文件的信息


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3