/*
* Author :SJQ
*
* Time :2014-07-16-20.21
*
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std; struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
}; //利用快慢指针,链表有环,则快慢指针一定会相遇
bool hasCycle(ListNode *head)
{
if (!head|| !head->next)
return false; ListNode *fast, *slow;
fast = slow = head;
while(fast)
{
if (!fast->next)
return false; fast = fast->next->next;
slow = slow->next; if (fast == slow)
{
return true;
}
} return false;
} int main()
{
freopen("input.txt", "r", stdin);
int n;
ListNode *head, *tail; while(cin >>n)
{
int num;
for (int i = ; i < n; ++i)
{
cin >> num;
ListNode *temp = (ListNode*)malloc(sizeof(ListNode));
temp->val = num;
temp->next = NULL; if (i == )
{
head = temp;
tail = temp;
}
else
{
tail->next = temp;
tail = tail->next;
} tail->next = NULL;
} tail->next = head->next; //手动每次把最后一个节点和第二个节点连起来
bool flag = hasCycle(head);
if (flag)
cout << "has cycle!" << endl;
else
cout << "no cycle!" << endl;
tail = head;
for (int i = ; i < n; ++i) {
cout << tail->val << " ";
tail =tail->next;
}
cout << endl;
} return ; }

最新文章

  1. java中 IndexOf()、lastIndexOf()、substring()的用法
  2. 30-React JSX IN DEPTH
  3. 图像分割实验:FCN数据集制作,网络模型定义,网络训练(提供数据集和模型文件,以供参考)
  4. 如何将ADT项目导入Android studio及常見問題
  5. 【干货】ECS服务器OPENVPN搭建,方便管理所有内网服务器
  6. Java Web 工作技巧总结 16.8
  7. 线段树 Interval Tree
  8. Python包管理工具介绍
  9. PHP字符串处理常用方法
  10. ie8如何支持html5
  11. Linux方面收藏的一点儿资料
  12. cf C. Vasya and Robot
  13. UIView的交换实现,子视图交替变换
  14. 【iOS知识学习】_UITableView简介
  15. [LeetCode]题解(python):015-3Sum
  16. 文本变语音引擎 ekho
  17. Android之布局大全
  18. vue2.0结合Element实现select动态控制input禁用
  19. 【大前端攻城狮之路】JavaScript函数式编程
  20. [转] 图解Seq2Seq模型、RNN结构、Encoder-Decoder模型 到 Attention

热门文章

  1. Asp.net core与golang web简单对比测试
  2. NET Core &amp; VS Code 之路(2) Web API
  3. DotNET知识点总结三(笔记整合)
  4. LINQ 学习笔记(1)
  5. 一句话输出网站404页面,REFER及相关排序
  6. Oracle 判断 并 手动收集 统计信息 脚本
  7. css属性之@media
  8. bzoj3997[TJOI2015]组合数学
  9. C++中的string类(1)
  10. 浏览器开发 IE webkit chrome浏览器定制