链表的分类:

链表的种类总共有八种情况有以下组成 (带头/不带头  单向/双向  循环/不循环)

带环链表与循环链表不同  带环链表 不好找到入环的节点 它是在中间进入循环,而循环链表你只需遍历它的下一个是不是头就能找到了 

所以内 带环链表是非常危险的,因为你一旦去运行 就肯定是死循环的 而且我们还不知道这个环是从哪里开始的 了解完带环链表的结构后 我们来看一下这个题目

这个是判断有无环力扣

这个是判断有无环并返回入环的节点力扣


这两个题的过程十分的简单但你要明白其中的道理还是有点难度的 

首先给大家提一下 这个题是用 快慢指针 

快慢指针 -- >  fast / slow

提个问题 :

如果 fast 一次走 2 步 slow 一次走 1 步 进环后 fast 能追上 slow 嘛

如果 fast 一次走 3 步 slow 一次走 1 步 进环后 fast 能追上 slow 嘛

如果 fast 一次走 4 步 slow 一次走 1 步 进环后 fast 能追上 slow 嘛

能得话请证明? 不能请说明理由? 这道题更重要的是证明 



大家可以思考一下其实 x 的长度就是当slow进环时fast与它的距离:每一次fast与slow的距离减一, 那slow每次走1步, 走了x步被追上, 不就是经过了x次嘛,经过了x次被追上而每一次他们的距离都会减一 是不是减去的距离是 x*1, 这减去的距离不就是 slow进环时fast与它的距离 嘛 怎么样这样说大家能理解嘛 (注意这里我们设定的是fast走2步 slow走1步 这样fast才是肯定能够追得上slow的)(看上面的的图理解不清楚的话可以看看下面的图

这里的相对速度V取1时这些等式才是肯定成立的 换成其他就有可能不成立了写在这儿主要为了方便大家理解

根据之前得出的结果到相遇时 slow走L+X步 fast走L+N*C+X步  

因为fast每次比slow多走一步 最终相遇的时候 fast走过的距离是slow走过的距离的二倍

2×(L+X)=L+N*C+X

得出L+X=N*C

这个公式是有用处的哦 在我们解决寻找入环点这个问题时会对我们有帮助

再推导 L=N*C-X => 意味着再相遇的地方(meet) 和 链表开头的地方 (head) 两个指针会在入环点相遇:  

这个等式的意思: meet和head同时走 meet走之前N-1圈加上Z的距离与head在入环点相遇

现在来看我们的这两道题:

这样咱们的带环链表就解决了 其实还有另一种方法 要借用到两个链表找相交点的知识点就留给大家去思考了

感谢大家能够看到这里 !祝大家都能收到自己心仪大厂的offer !事业进步!学业进步!

C语言:带你轻松干掉 腾讯笔试大题 带环链表相关推荐

  1. 2015腾讯笔试大题

    今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有.大题如下: 在一组数的编码中,若任意两个相邻的代码只有一位二 ...

  2. 子集全排列组合数问题(带你轻松拿捏十一道OJ题)

    目录 一.子集 二.子集II 三.全排列 四.全排列II 五.字符全排列 六.字符串大小全排列 七.组合总和 八.组合总和II 九.组合总和III 十.组合总和IV 十一.递增子序列 一.子集 剑指 ...

  3. Python——腾讯笔试编程题(函数练习)

    题目需求: 对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如: f(13) = 1的2次方 + 3的2次方 = 10 f(207) = 2的2次方+ 0的2次方+ 7的2次方= 53 下 ...

  4. 腾讯笔试编程题,贪吃的小Q(二分查找)

    问题描述 小Q的父母要出差N天,走之前给小Q留下了M块巧克力.小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力. 输入描 ...

  5. 老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件

    ios 8 的时间滚轮控件实现了扁平化,带来很好用户体验,android没有现成控件,小弟不才,数学与算法知识不过关,顾十分苦恼,幸好在github上找到sai大神实现代码,甚为欣喜,顾把学习这个控件 ...

  6. 腾讯笔试算法题-开锁

    题目:有n 把钥匙,m 个锁,每把锁只能由一把特定的钥匙打开,其他钥匙都无法打开.一把钥匙可能可以打开多把锁,钥匙也可以重复使用. 对于任意一把锁来说,打开它的钥匙是哪一把是等概率的.但你无法事先知道 ...

  7. Java算法:牛客网腾讯笔试真题算法Java版1-11题

    题号 题目 知识点 难度 通过率 QQ1 生成格雷码 递归 简单 22.61%QQ2 微信红包 模拟 简单 25.61%QQ3 编码 字符串模拟 中等 26.60%QQ4 游戏任务标记 模拟 中等 3 ...

  8. 从一道腾讯笔试编程题看——并查集

    题目描述 现有个用户,编号问1-,现在已知有m对关系,每一对关系给你两个数x和y,代表编号为x的用户和编号为y的用户是在一个圈子中,例如:A和B在一个圈子中,B和C在一个圈子中,那么A,B,C就在一个 ...

  9. proe常用c语言语句,带你轻松搞懂Proe条件语句

    原标题:带你轻松搞懂Proe条件语句 本文通过几个简单的例子介绍Proe中的条件语句,希望对你能有所帮助.Proe中使用的IF条件语句和C语言中的IF语句原理是一样的,其结构稍有差别.首先我们了解一下 ...

  10. 尚硅谷Nginx新版升级教程,带你轻松掌握高并发系统架构

    摘要:桃李春风一杯酒,江湖夜雨十年灯. "你说有没有一种可能, "你喜欢我,又不好意思说出口, "其实你可以直接说出来的, "我会让你知道什么叫心想事成.&qu ...

最新文章

  1. Visual Studio 2005 Web Deployment Projects版本不同引发的问题
  2. react前端开发_是的,React正在接管前端开发。 问题是为什么。
  3. 往年包场丘赛的北大,今年被清华逆袭了
  4. C#网页数据采集(一)HtmlAgilityPack
  5. python教程书籍推荐-买Python入门书籍,我推荐这一本
  6. mysql linux 下载安装,Mysql 下载 安装 for linux
  7. 使用DBUA单一实例如何升级至Oracle数据库12c
  8. 210120 阶段三 fork与阻塞函数
  9. html突出显示,javascript-记住html页面中突出显示的文本(向html页面添加注释)
  10. c++ vector拷贝构造_JDK源码分析-Vector
  11. cdi 2.7.5_集成测试CDI 1.0和Spring 3.1中的作用域bean
  12. c# combobox集合数据不显示_C#实战036:各种泛型的定义和使用详解
  13. F28335的ADC采集电压不对(ADC采集模块的输入信号的两个端子是:正极:ADCINAx ,负极是:ADCL0)
  14. 基于 Elasticsearch 的站内搜索引擎实战
  15. FPGA仿锆石代码风格组合电路时序电路严格分开之(一)8通道16位AD采集
  16. API接口防止参数被篡改和重放攻击
  17. matlab 变量上小尖尖,发动机最中间的那个小尖尖,你猜是什么?
  18. element-ui vue-quill-editor 富文本编辑器 解决插入图片不采用base64 从服务器传图片在显示返回url
  19. matlab: 计算程序运行时间
  20. oracle左关联+号表示方式

热门文章

  1. Verdi HW/SW co-debug 简单使用
  2. win7家庭版如何升级到专业版和旗舰版
  3. 逻辑结构?存储结构?傻傻分不清……
  4. 在Apple Watch上了解时间旅行
  5. 解决Chrome账户无法同步
  6. 电影《失控玩家》:软件2.0,让游戏角色“觉醒”了?
  7. 数字图像处理实验八--图像分割
  8. 无论用手工处理还是用计算机进行处理,会计电算化试卷
  9. 微信公众号开发之上传临时素材
  10. 灯神动态规划(Dynamic Programing)学习笔记 打劫问题 凑整问题 背包问题 例题+原理+源码超详细讲解