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

 更新时间:2013年11月14日 10:17:56   作者:  
本文实现算法来删除单链表中的中间节点,只知道指向该节点中间节点的指针,大家可以参考使用
问题如下
输入:链表 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);
}

相关文章

  • Linux重命名文件和文件夹的两种方法

    Linux重命名文件和文件夹的两种方法

    这篇文章主要介绍了Linux重命名文件和文件夹的两种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • linux shell 中判断文件、目录是否存在的方法

    linux shell 中判断文件、目录是否存在的方法

    这篇文章主要介绍了linux shell 中判断文件、目录是否存在的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • nginx日志切割shell脚本

    nginx日志切割shell脚本

    nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
    2014-03-03
  • Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知

    Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知

    这篇文章主要介绍了Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知,其中表空间是指oracle数据库里的表空间,需要的朋友可以参考下
    2014-12-12
  • 浅谈Linux 二进制包安装MySQL的一些问题

    浅谈Linux 二进制包安装MySQL的一些问题

    下面小编就为大家带来一篇浅谈Linux 二进制包安装MySQL的一些问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 如何使用 Shell 脚本执行 .NET Core 应用

    如何使用 Shell 脚本执行 .NET Core 应用

    这篇文章主要介绍了如何使用 Shell 脚本执行 .NET Core 应用,帮助大家更好的理解和使用shell 脚本,感兴趣的朋友可以了解下
    2020-09-09
  • shell脚本根据进程查找指定容器的方法

    shell脚本根据进程查找指定容器的方法

    这篇文章主要介绍了shell脚本根据进程查找指定容器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 详解Linux下find查找文件命令和grep查找文件命令

    详解Linux下find查找文件命令和grep查找文件命令

    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep,两个命令是有区的,今天通过本文给大家介绍下Linux下查找文件(find、grep命令),感兴趣的朋友一起看看吧
    2022-04-04
  • Shell判断文件或目录是否存在的脚本(收藏)

    Shell判断文件或目录是否存在的脚本(收藏)

    这篇文章主要介绍了Shell判断文件或目录是否存在的脚本,shell脚本判断文件是否存在非常简单,文中给大家列举了常用的例子,给大家讲解的非常详细,需要的朋友跟随小编一起看看吧
    2022-11-11
  • linux中文件的三种time(atime,mtime,ctime)的用法

    linux中文件的三种time(atime,mtime,ctime)的用法

    linux下文件有3个时间的,分别是atime,mtime,ctime,有些小伙伴对这3个时间还是比较迷茫和困惑的,所以小编为大家整理了下,希望对大家有所帮助
    2023-08-08

最新评论