Linked List Cycle II问题及解法
来源:互联网 发布:mysql media1.cab 编辑:程序博客网 时间:2024/05/23 19:13
问题描述:
Given a linked list, return the node where the cycle begins. If there is no cycle, return null
.
Note: Do not modify the linked list.
Follow up:
Can you solve it without using extra space?
问题分析:
使用双指针fast,slow,判断是否有环;若有环,则设置链表起点到环起点的距离为s,环起点到fast和slow相遇点的距离为m,环的周长为r。则可列出如下等式:s = r - m + nr(n >=0,指slow从环起点开始共走了n圈)。有了等式,求解就不成问题了。
过程详见代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head) { ListNode * fast = head, *slow = head;while (fast!= NULL && fast->next != NULL){fast = fast->next->next;slow = slow->next;if (slow == fast){while (slow != head){head = head->next;slow = slow->next;}return head;}}return NULL; }};
阅读全文
0 0
- Linked List Cycle II问题及解法
- Linked List Cycle问题及解法
- Reverse Linked List II问题及解法
- Leetcode之Linked List Cycle II 问题
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- Linked List Cycle II
- ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec
- 关于iOS 静态库.a 合并通用库
- centos下面配置防火墙
- Linux学习心得
- spring_jdbctemplate
- Linked List Cycle II问题及解法
- 高中OJ4086. 选数(number)
- JavaScript基础之对象
- HTTP协议定义的八个标准方法(动作)
- 大端和大端
- 项目部署到服务器,图片和内容无法显示
- Vegas创建歌词字幕的方法
- 飞翔的小球,小球自由移动
- MySQL数据表类型与存储引擎类型