【C语言】判断单链表是否带环
2015-11-26 21:29
162 查看
[align=left]思想:快慢指针,若为环,则快指针一定能追上慢指针[/align]
[align=left]intIsCycle(Plinklist*pplist)[/align]
[align=left]{[/align]
[align=left] assert(pplist);[/align]
Node*fast
= *pplist;
Node*slow
= *pplist;
[align=left] while(fast&&fast->next)[/align]
[align=left] {[/align]
[align=left] fast = fast->next->next;[/align]
[align=left] slow = slow->next;[/align]
if(fast
== slow)
[align=left] {[/align]
[align=left] return1;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] return0;[/align]
[align=left]}[/align]
[align=left]intIsCycle(Plinklist*pplist)[/align]
[align=left]{[/align]
[align=left] assert(pplist);[/align]
Node*fast
= *pplist;
Node*slow
= *pplist;
[align=left] while(fast&&fast->next)[/align]
[align=left] {[/align]
[align=left] fast = fast->next->next;[/align]
[align=left] slow = slow->next;[/align]
if(fast
== slow)
[align=left] {[/align]
[align=left] return1;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] return0;[/align]
[align=left]}[/align]
相关文章推荐
- ubuntu安装lamp&&mysql中修改配置文件显示中文&&强大的vim配置&&c++连接Mysql
- 【C语言】删除任意一个节点n(不知道头结点,且所删节点既不是头结点也不是尾节点)
- c++11 async 的自带参数使用
- 顺序栈,C++基本实例应用
- C++内存分配原则方法
- c++11使用 async异步函数并传递参数以及auto的使用方法
- C++指针与引用(二):常用const指针,增强程序的健壮性
- C++设计模式[二十]策略模式
- 【程序设计基础_C语言】北理工的恶龙
- C语言基础第三篇--控制语句
- C++primer__泛型算法-泛型算法结构
- 浅谈C/C++的time_t函数
- 链表保存学生信息
- C++指针与引用(一):函数传参,是该传对象,还是传指针,抑或是引用
- C++设计模式[十九]状态模式
- c++11 async启动异步任务的使用方法
- c++11future简单使用及介绍
- C语言练习作业(五)
- 【C语言】单链表的排序
- 【C语言】查找链表的中间节点及倒数第K个节点