• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++删除链表中间节点的方法

C++删除链表中间节点的方法

作者:难免有错_ 字体:[增加 减小] 来源:互联网 时间:2017-05-28

难免有错_ 通过本文主要向大家介绍了c++链表排序,链表c++,c++链表的创建,c++链表类,c++链表教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++删除链表中间节点的方法。分享给大家供大家参考,具体如下:

题目:

给定链表头结点head,实现删除链表的中间节点函数。

解题思路及代码:

快慢指针,快指针走两步,慢指针一步。
当快指针走到终点时,慢指针正好是链表中间节点,删除此节点即可。

链表结构定义:

typedef struct Node
{
  int data;
  struct Node* next;
}node, *pLinkedList;

</div>

算法C++代码:

Node* removeMidNode(pLinkedList head)
{
  if (head->next == NULL || head == NULL)
    return head;
  if (head->next->next == NULL)
    return head->next;
  pLinkedList fast = head;
  pLinkedList slow = head;
  pLinkedList pre = NULL;
  /*
  head  1    2    3    4    5
  pre   slow  fast
  */
  //1个节点
  if (head->next->next == NULL)
    return head->next;
  while (fast->next != NULL && fast->next->next != NULL)
  {
    pre = slow;
    fast = fast->next->next;
    slow = slow->next;
  }
  //此时fast已到终点,slow为中间节点,pre为中间节点前一个节点
  pre->next = slow->next;
  free(slow);
  slow = NULL;
  return head;
}

</div>

希望本文所述对大家C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++删除链表中间节点的方法
  • C++ 单链表的基本操作(详解)
  • C++ 双链表的基本操作(详解)
  • c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)

相关文章

  • 2017-05-28用C++实现一个链式栈的实例代码
  • 2017-05-28C++中的内存分区介绍
  • 2017-05-28C语言实现去除字符串中空格的简单实例
  • 2017-05-28C++堆排序算法的实现方法
  • 2017-05-28linux c 获得当前进程的进程名和执行路径(示例)
  • 2017-05-28详解C语言位域的使用与注意事项
  • 2017-05-28浅谈C++日志系统log4cxx的使用小结详解
  • 2017-05-28基于稀疏图上的Johnson算法的详解
  • 2017-05-28VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例
  • 2017-05-28c++ cin 作为while条件(详解)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言使用openSSL库AES模块实现加密功能详解
    • 怎么锁定鼠标的示例代码分享
    • 从string类的实现看C++类的四大函数(面试常见)
    • 探讨++i与i++哪个效率更高
    • VC实现批量删除指定文件的方法
    • 详解C++中实现继承string类的MyString类的步骤
    • VS2010/MFC编程(常用控件:树形控件Tree Control控件创建h和实例)
    • C++基础学生管理系统
    • C++常用字符串分割方法实例汇总
    • C++链表倒序实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有