面试题快慢链表和快慢指针

发布时间 - 2026-01-11 01:55:07    点击率:

腾讯的一道面试题:如何快速找到位置长度单链表的中间节点?普通方法,就是先遍历,在从头找到2/length的中间节点。算法复杂度是:O(3*n/2)。而更快的方法就是利用快慢指针的原理。

快慢链表:利用标尺的思想,设置两个指针(一快一慢)*serach和*mid,刚开始都指向单链表的头结点。但是*search指针的移动速度是*mid的两倍。当*search到尾结点的时候,mid刚好到了中间。算法复杂度是:O(n/2)

int GetMidNode(LinkList *L,int elem){
  LinkList *search,*mid;
  mid = search = L; //指向头结点
  while (search->next != NULL){ //当存在下个结点的时候 
    if (search->next->next!=NULL) {//检查下个的下个节点是否为空 
      search = search->next->next;
      mid = mid->next;
    } 
    else
      search = search->next;
  }
  elem = mid->data;
  return elem;
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 面试题快慢链表和快慢指针  # C语言链表  # 指针  # Java高级面试题小结  # Java main 方法面试题的详细整理  # Java常见数据结构面试题(带答案)  # C++面试题之结构体内存对齐计算问题总结大全  # 分享几道你可能遇到的python面试题  # C++ 面试题翻译电话号码实例代码  # 亚马逊经典面试题实例详解  # 下个  # 链表  # 遍历  # 腾讯  # 希望能  # 更快  # 刚开始  # 谢谢大家  # 两倍  # 到尾  # 为空  # 面试题  # strong  # 一快一慢  # serach  # return  # pre  # data  # br  # length 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在橙子建站上传落地页?操作指南详解  网站制作企业,网站的banner和导航栏是指什么?  北京专业网站制作设计师招聘,北京白云观官方网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何使用Blade组件和插槽?(Component代码示例)  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel如何实现文件上传和存储?(本地与S3配置)  高端云建站费用究竟需要多少预算?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  ,在苏州找工作,上哪个网站比较好?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Python面向对象测试方法_mock解析【教程】  如何用景安虚拟主机手机版绑定域名建站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何快速完成中国万网建站详细流程?  教你用AI润色文章,让你的文字表达更专业  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何在万网主机上快速搭建网站?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在香港免费服务器上快速搭建网站?  Laravel如何优化应用性能?(缓存和优化命令)  黑客如何通过漏洞一步步攻陷网站服务器?  动图在线制作网站有哪些,滑动动图图集怎么做?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  高防服务器租用指南:配置选择与快速部署攻略  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Android自定义控件实现温度旋转按钮效果  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何用VPS主机快速搭建个人网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  EditPlus中的正则表达式 实战(2)  EditPlus中的正则表达式实战(5)  利用JavaScript实现拖拽改变元素大小  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel如何记录自定义日志?(Log频道配置)  实现点击下箭头变上箭头来回切换的两种方法【推荐】  nodejs redis 发布订阅机制封装实现方法及实例代码  javascript中对象的定义、使用以及对象和原型链操作小结  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel怎么调用外部API_Laravel Http Client客户端使用  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何正确选择百度移动适配建站域名?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?