Linked List Cycle
2014-02-25 19:59
232 查看
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
题意:给定一个链表,判断是否有环
由于这题出现的频率太高,我也不小心很早就看过它的做法,SO,直接贴代码吧!
PS:对于链表关键要考虑它的健壮性,异常情况有:空链表、单节点、空指针的情况
struct ListNode{
int val;
ListNode *next;
};
bool hasCycle(ListNode *head) {
bool flag = false;
if(head != NULL){
ListNode *p1 = head;
ListNode *p2 = head;
int i = 0;
while(p1->next){
i++;
p1 = p1->next;
if( i%2 == 0) p2 = p2->next;
if(p1 == p2){
flag = true;
break;
}
}
}
return flag;
}
Follow up:
Can you solve it without using extra space?
题意:给定一个链表,判断是否有环
由于这题出现的频率太高,我也不小心很早就看过它的做法,SO,直接贴代码吧!
PS:对于链表关键要考虑它的健壮性,异常情况有:空链表、单节点、空指针的情况
struct ListNode{
int val;
ListNode *next;
};
bool hasCycle(ListNode *head) {
bool flag = false;
if(head != NULL){
ListNode *p1 = head;
ListNode *p2 = head;
int i = 0;
while(p1->next){
i++;
p1 = p1->next;
if( i%2 == 0) p2 = p2->next;
if(p1 == p2){
flag = true;
break;
}
}
}
return flag;
}
相关文章推荐
- 读写锁----笛风读书笔记系列
- 包转发率得计算和背板带宽的计算
- Redisbook学习笔记(3)数据类型之集合
- Redisbook学习笔记(3)数据类型之集合
- poj-2524 Ubiquitous Religions
- Ubuntu 12.0下为Firefox安装Adobe Flash Player
- 获取影片列表报文
- 开博了!!
- Robberies
- linux定时器的使用----笛风读书笔记系列
- mysql 5.5安装手记
- 阿里云ECS每天一件事D1:配置SSH
- 定制WinX菜单
- 输入三个字符串,按由小到大的顺序输出
- android 源码下载
- cocos2d-x应用窗口相关源码剖析1
- 网络阅读开篇
- 输入三个字符串,按由小到大的顺序输出
- usaco training 4.1.2 Fence Rails 题解
- mvn eclipse:eclipse -Dwtpversion=2.0 -DdownloadSources=true -DdownloadJavadocs=true -DjdkLevel=1.6