判断单链表是否有环
来源:互联网 发布:app编程培训 编辑:程序博客网 时间:2024/05/22 14:49
算法思想: A跑一步,B跑两步, 如果有环形区, B一定会与A相遇.
#include <iostream> #include <string> using namespace std; typedef struct list_node { int x; struct list_node* next; }node, *pnode;bool isCircle(pnode list){ pnode quick=list, slow=list;//快慢指针 while(1) { if(quick==NULL || slow == NULL)//可以到达链表末尾说明无环 return false; quick = quick->next; if(quick == NULL) return false; quick = quick->next; slow = slow->next; if(slow==quick)//慢指针赶上快指针说明有环 return true; }}int main(){ pnode list = NULL, temp; for(int i=1;i<=10;i++) { pnode pn = new node; pn->x = i; pn->next = list; list = pn; } temp = list; for(int i=0;i<10;i++, temp=temp->next) cout<<temp->x<<" "; cout<<endl; if(isCircle(list)) cout<<"有环"<<endl; else cout<<"无环"<<endl; //手工构造一个环 pnode tail = list; while(tail->next != NULL) tail = tail->next; tail->next = list; if(isCircle(list)) cout<<"有环"<<endl; else cout<<"无环"<<endl; for(int i=0;i<10;i++) { temp = list->next; delete list; list = temp; } return 0;}
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环?
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 判断单链表是否有环
- 强类型语言与弱类型语
- x264(20090216-2245)main函数级的流程图
- CF 4 C
- 黑马程序员_注解概述
- eclipse自动部署项目到tomcat下
- 判断单链表是否有环
- 如何使Android应用程序获取系统权限
- Microsoft Script editor 安装步骤
- dedecms文章列表前面加图片序号
- struct结构的大小
- 加速matlab运行的三重境界
- C++面试题解析
- [hadoop源码阅读][4]-org.apache.hadoop.io.compress系列3-使用压缩
- PHP学习之路六(php与正则表达式)