判断单链表是否带环?若带环,求环的长度?求环的入口点?
来源:互联网 发布:linux ftp访问目录 编辑:程序博客网 时间:2024/06/05 07:48
第一步:判断是否带环
ListNode* IsCycle(ListNode* list)//快慢指针法{ List* fast=list,* slow=list; while(fast&&fast->next) { slow=slow->next; fast=fast->next->next; if(fast==slow) { return slow; } return NULL; }}思路:快慢指针法慢指针一次走一步,快指针一次走两步,如果两个指针相遇则说明有环,返回相遇点;否则无环返回NULL。
第二步:若带环,求环的长度
int lengthCycle(ListNode* list){ ListNode* meet=IsCycle(list); if(meet) { int count=1; ListNode* tmp=meet->next; while(tmp!=meet) { tmp=tmp->next; count++; } return count; }}思路:从相遇点开始走,遍历环,再一次回到相遇点所走的距离即为环的长度
第三步:求环的入口点
ListNode* Enter(ListNode* list){ ListNode* meet=IsCycle(list); if(meet) { while(meet!=list) { meet=meet->next; list=list->next; } return list; } return NULL;}
阅读全文
0 0
- 判断单链表是否带环,若带环,求环的长度,求环的入口点
- 判断单链表是否带环? 若带环, 求环的长度? 求环的入口点?
- 判断单链表是否带环? 若带环, 求环的长度? 求环的入口点?
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?
- 判断单链表是否带环?若带环,求环的长度,求环的入口点
- 判断链表是否带环?若带环求环的长度?求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- -判断链表是否带环?若带环求环的长度?若带环求环的入口点
- 剑指offer--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 链表--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环,若带环求环的长度,若带环求环的入口点
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?(C语言)
- 链表面试题----判断一个单链表是否带环,若带环,求入口点和环的长度
- Array.prototype.slice 妙用
- java面向对象四大特性
- java实现余弦计算文本相似性
- UEditor生成适配移动端的HTML
- FastgrabCongigReader 华为P9 内存泄漏
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?
- Java测试字节流和字符流,以及带缓存的字符流读取速度对比
- 最小正整数
- if语句
- 【数位DP+离散化】Beautiful numbers CodeForces
- Hibernate基础2
- glibc 实现代码的注释之翻译
- 关于Spirng框架个人总结
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 E Territorial Dispute (凸包)