解析:在处理链表问题时,”快行指针“(runner,或称第二个指针)是一种很常见的技巧。快行指针指的是同时用两个指针来迭代访问链表,只不过其中一个比另一个超前一些。

设立两个指针,比如*p和*q。p每次移动两步,即 p = p->next->next,q每次移动一步,即 q = q->next。这样,当p到达最后一个节点时,q就是中间节点。

算法如下:

 1 void serchmid(node *head, node *mid)
 2 {
 3     node *temp = head;
 4     while(head->next->next != NULL)
 5     {
 6         head = head->next->next;
 7         temp = temp->next;
 8         mid = temp;
 9     }
10 }

转载于:https://www.cnblogs.com/freeso/p/3978285.html

给出一个单链表,不知道节点N的值,只遍历一次就可以求出中间节点,写出算法...相关推荐

  1. 【数据结构】判断一个单链表中各结点的值是否有序

    count记录的是单链表的总长 count1记录的是升序的结点的个数 count2记录的是降序的结点的个数 如果count1或者count2等于count,那么就说明该序列是升序或者降序的. 稍加改进 ...

  2. 判断一个单链表是否有环,若有,找出环的入口节点

    题目:如何判断一个单链表是否有环?若有环,如何找出环的入口节点. 一.单链表是否有环 思路分析: 单链表有环,是指单链表中某个节点的next指针域指向的是链表中在它之前的某一个节点,这样在链表的尾部形 ...

  3. 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1),时 ...

  4. Python3 反转一个单链表

    Python3 反转一个单链表 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1-&g ...

  5. 判断一个单链表中是否存在环

    #判断一个单链表中是否存在 环. #设置两个指针(fast, slow),初始值都指向头,slow每次前进1步,fast每次前进2步, 大概的思路如下: 如果链表存在环,则fast必定先进入环,而sl ...

  6. c语言,递归翻转一个单链表,c实现单链表

    目的:主要是练习c里面单链表的实现,递归思想复习; #include <stdlib.h> #include <stdio.h>typedef struct _Node{//定 ...

  7. 用python 判断一个单链表是否有环

    文章目录 用python 判断一个单链表是否有环. 第二次做DAY20201130 [141. 环形链表](https://leetcode-cn.com/problems/linked-list-c ...

  8. Python如何创建一个单链表,以及实现单链表的增,删,改,查操作,以及对单链表的排序功能

    标题Python如何创建一个单链表,以及实现单链表的增,删,改,查操作,以及对单链表的排序功能 #功能: 实现单链表的构建和功能操作 #定义单链表的类 class Node:""& ...

  9. 反转一个单链表(Java)

    看到反转链表,可能第一时间的想法便是遍历一遍这个单链表,然后把链表里的元素都取出来,放到一个数组里,然后逆置这个数组.这个想法是错的!!! 所以什么是反转链表呢?见下图: 反转一个单链表,我们需要的是 ...

最新文章

  1. c语言指针用法及实际应用详解,通俗易懂超详细!
  2. AI 白皮书:赢家、输家
  3. intelij maven
  4. 微服务学习--Linux
  5. java应用性能指标_性能与可靠性:Java应用为何像F1汽车
  6. 6 个步骤,教你在Ubuntu虚拟机环境下,用Docker自带的DNS配置Hadoop | 附代码
  7. 使用ASP.NET AJAX Control Toolkit中的NoBot控件拒绝垃圾发布程序 【转载】
  8. UnityShader4:UnityShader的形式
  9. HDOJ 1114 Piggy-Bank 【动态规划 完全背包】
  10. prometheus Metric类型
  11. 关于几种获取iOS设备UDID典型方式的技术探讨
  12. 程序员叫啥名字_什么是资深程序员?看自“配”的网名就真相了!
  13. Matplotlib 设置支持中文的默认字体
  14. IP-guard桌面终端安全解决方案
  15. 小猿圈解析linxu安装方式
  16. 汽车在线升级系统(OTA)开发浅析
  17. 自定义类加载器加载冲突类(一)-ClassLoader
  18. [RK3288][Android6.0] Skia中的编解码小结
  19. vue项目集成stomp.js接收artemis消息推送
  20. InceptionV3代码解析

热门文章

  1. 死磕单点登录的实现原理
  2. 程序员的编程能力与编程年龄
  3. maven国内镜像(maven下载慢的解决方法)
  4. 让面试官颤抖的 HTTP 2.0 协议面试题
  5. Why Spring Boot
  6. Android --- ERROR: Failed to resolve: xxx Affected Modules: xxx
  7. C语言 编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中。其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34...该数列除前两项之外,其他任意
  8. php实现返回界面,PHP实现模仿socket请求返回页面的方法
  9. 灾备知识总结:容灾与备份区别、灾备技术、容灾体系规划
  10. 中国联通华东云数据中心—电气培训