设为首页 加入收藏

TOP

Linked List Cycle [leetcode]
2015-07-20 17:46:58 来源: 作者: 【 】 浏览:2
Tags:Linked List Cycle leetcode

Given a linked list, determine if it has a cycle in it.

#include
  
   
#include
   
     #include
    
      using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: bool hasCycle(ListNode *head) { ListNode* fast_walker = head; ListNode* slow_walker = head; while (fast_walker && slow_walker){ fast_walker = fast_walker->next; if (fast_walker) fast_walker = fast_walker->next; else break; slow_walker = slow_walker->next; if (slow_walker == fast_walker){ return true; } } return false; } }; /* 从命令行接受数据 初始化 链表 int main(){ ListNode* head = NULL; ListNode* tmp = head; int in = 0; while (cin >> in){ tmp->next = new ListNode(in); tmp = tmp->next; tmp->next = NULL; } Solution ss; ss.hasCycle(head); return 0; } */ //从文本文件中初始化链表 int main(){ fstream fin("test.txt"); ListNode* head(0);//此时并没有分配存储地址 ListNode* tmp = head;//此时相当于 tmp = NULL int in = 0; while (fin >> in){ if (!head) { head = new ListNode(in); tmp = head; } else{ while (tmp->next != NULL) tmp = tmp->next; tmp->next = new ListNode(in); tmp = tmp->next; tmp->next = NULL; } } //制造一个环 tmp->next = head->next; Solution ss; bool retult = ss.hasCycle(head); system("pause"); return 0; }
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇codeforces #261 D题 Pashmak and.. 下一篇有意思的进程创建函数fork()的问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)