主页 > 知识库 > 给定链表中间节点指针,删除中间节点的方法

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

热门标签:百度地图标注错了有责任吗 客服外呼系统怎么样 华锋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);
}
您可能感兴趣的文章:
  • Linux内核链表实现过程
  • 编码实现从无序链表中移除重复项(C和JAVA实例)
  • 用C和JAVA分别创建链表的实例
  • java单向链表的实现实例
  • C++中单链表的建立与基本操作
  • STL list链表的用法详细解析

标签:金昌 娄底 马鞍山 邵阳 巴彦淖尔 许昌 赤峰 淘宝邀评

巨人网络通讯声明:本文标题《给定链表中间节点指针,删除中间节点的方法》,本文关键词  给定,链表,中间,节点,指针,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《给定链表中间节点指针,删除中间节点的方法》相关的同类信息!
  • 本页收集关于给定链表中间节点指针,删除中间节点的方法的相关信息资讯供网民参考!
  • 推荐文章