[leetcode-141]Linked List Cycle(c)
2015-08-18 18:21
639 查看
问题描述:
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
分析:这道题很有意思,一个list如果一旦有环,那么将会形成死循环,所以可以利用这个特点,使用两个指针,一个指针移动幅度为2,一个指针幅度为1,那么如果一旦存在环,那么这两个指针一定会有相同的时候,因为它们移动的速度不同,有点像小时候的追及问题。
代码如下:4ms
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
分析:这道题很有意思,一个list如果一旦有环,那么将会形成死循环,所以可以利用这个特点,使用两个指针,一个指针移动幅度为2,一个指针幅度为1,那么如果一旦存在环,那么这两个指针一定会有相同的时候,因为它们移动的速度不同,有点像小时候的追及问题。
代码如下:4ms
[code]/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ bool hasCycle(struct ListNode *head) { if(!head || !head->next) return false; struct ListNode *prev = head; struct ListNode *next = prev->next; while(prev&&next){ if(prev==next) return true; prev = prev->next; if(!(next->next)) break; next = next->next->next; } return false; }
相关文章推荐
- 线程终止资源清理方式
- 《ArcGIS Runtime SDK for Android开发笔记》
- tomcat 页面图片管理服务器配置
- iOS UIImage剪切圆形
- ionic页面缓存和局部刷新
- c语言发挥帕斯卡三角
- 30天,O2O速成攻略【8.30南京站】
- event2/http.h File Reference
- freemark自定义标签
- hdu 5303 Delicious Apples 2015 Multi-University Training Contest 2
- eclipse中的.project 和 .classpath文件的具体作用
- java-String常用方法
- ionic 的缓存 和局部刷新
- 2680 Choose the best route【dijkstra】
- Java获取用户IP地址
- Leetcode#73||Set Matrix Zeroes
- 实例讲解CSS3中的border-radius属性
- csrf的介绍与预防
- 自驾五千公里后
- 自驾五千公里后