//构建链表
#include"list.h"
 listnode* MiddleNOdeFromEnd(listnode* head)
{
listnode* pahead=head;
listnode* pbehind=head;
if(head->next==NULL)
return NULL;
if(head->next->next==NULL)
return head->next;
while(pahead!=NULL&&pbehind!=NULL&&pbehind->next!=NULL&&pahead->next!=NULL)
{
pahead=pahead->next->next;
pbehind=pbehind->next;
}
return pbehind;
}
int main()
{
list list1;
list1.addtolist(1);
list1.addtolist(2);
/*list1.addtolist(3);
list1.addtolist(4);
list1.addtolist(5);
list1.addtolist(6);
list1.addtolist(7);
list1.addtolist(8);
list1.addtolist(9);
list1.addtolist(10);
list1.print();*/
listnode* head=list1.Head();

listnode* pmiddle=MiddleNOdeFromEnd(head);
cout<<pmiddle->data<<endl;
return 0;
}

C++实现遍历链表一次求出中间的节点相关推荐

  1. 【算法】广度遍历算法的应用 求出距离顶点v0的最短路径长度为最长的一个顶点,图结构的bfs生成树及其双亲表示形式

    例: 求出距离顶点v0的最短路径长度为最长的一个顶点,并要求尽可能节省时间 分析: 用bfs算法(利用bfs算法的层次特性): 从v0出发进行广度遍历时, 最后一层的顶点距离v0的最短路径长度最长.因 ...

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

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

  3. 算法:通过克鲁斯卡尔(Kruskal)算法,求出图的最小生成树

    之前我给大家分享过用普利姆(Prim)算法来求出图的最小生成树(点我去看看),今天我再给大家分享一个也是求图的最小生成树的克鲁斯卡尔(Kruskal)算法 克鲁斯卡尔(Kruskal)算法,就相当于先 ...

  4. C++剑指offer:[POJ]2631 Roads in the North - 用树形DP的方式求出一棵树的直径

    前言 此题是道很简单的题(做法不单一,不仅只有树形DP的方法) 做完了这道题才发现此题原来是一道求树的直径的题,也就是求树上两个节点的最大距离. 题目 问题 N(2692): [POJ2631]北极地 ...

  5. c语言链表如何做成环,在C语言中单向链表环测试并返回环起始节点的实现方法...

    小编想问大家一个问题,就是如果我们需要进行测试一个单向链表是否存在环,应该使用什么方法才是最好的呢?如果大家还不知道有什么方法的话,那就接着往下面看哟!因为今天小编就要为大家介绍一下:在C语言中单向链 ...

  6. 7_2判断两个单链表是否相交,若相交,求出第一个交点

    转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251372.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己 ...

  7. 如何判断两个链表是否相交并求出相交点

    排除链表存在环的情况 此情况的意思就是普通的单链表是否相交问题. 相交是什么意思?注意不是单纯的节点的数值域相等,相交的意思是两个链表的部门节点的是同一个,就是这些节点为这两个链表共有. 链表的定义参 ...

  8. 判断两个链表是否交叉,并求出交叉点

    转载自:http://blog.csdn.net/seanyxie/article/details/6247071 在前面一篇文章中讲了如何判断一个链表中有环,如果有环的话,又如何判断出环出现在哪里 ...

  9. 求两门成绩平均c语言,数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩...

    数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩 关注:69  答案:2  mip版 解决时间 2021-02-04 09:43 提问者孤城古巷 2021-02- ...

最新文章

  1. 波段 ku_X和Ku波段小尺寸无线电设计
  2. spring定时任务(@Scheduled注解)
  3. 如何将 Ubuntu 版本升级到新版本
  4. 怎样用python自动生成python代码_(Python)自动生成代码(方法一)
  5. 网络化智能型维修电工电气控制技能实训智能考核装置
  6. redis字符串的创建,set、mset、setex、setnx
  7. RFB Net 笔记
  8. 大小写字母的ASCII的对照转换
  9. 利用二次导数对函数凹凸性的证明
  10. 机器学习--多层感知机、卷积神经网络、循环神经网络
  11. datax安装记录备忘
  12. MathType可以和哪些Microsoft Office版本一起使用?
  13. 面试准备(常见问题)
  14. mac苹果系统使用技巧
  15. php 如何实现关键字查找,PHP如何实现多个关键词查询?
  16. 项目:双色球预测系统
  17. Java 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时多少千米为单位的平均速度值。(注意,1英里等于1.6千米。)
  18. NBUT1457 Sona 莫队算法
  19. js基础知识入门总结
  20. 【Linux】循序渐进学运维-服务篇-inotify部署及应用

热门文章

  1. 学习的本质在于触发了你的思考
  2. 多核处理器_AMD锐龙翻身!单核、多核CPU跑分均名列榜首
  3. 中批注转成pdf看不到_超实用的PDF在线转换器,你绝对用的到~
  4. 对linuxptp软件移植到arm下遇到的问题进行记录
  5. android 动态 dex,Android 动态加载dex
  6. _捷豹F-pace汽车音响改装黄金声学,中道隔音——哈尔滨小蒋
  7. oracle手工快照,创建oracle快照的步骤
  8. 【Verilog HDL 训练】第 10 天(PWM 呼吸灯)
  9. 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(频域方法)
  10. 【 Linux 】Vim学习指南