leetcode 142 —— Linked List Cycle II

来源:互联网 发布:mac gcc include 编辑:程序博客网 时间:2024/05/29 18:23

思路: 数学推导,第一次相遇之后,left回到head,left和right 同时同速往后遍历,相遇时则为循环节点。推导见此处

http://www.cnblogs.com/x1957/p/3406448.html

http://www.cnblogs.com/ballwql/p/3676843.html

class Solution {public:ListNode *detectCycle(ListNode *head) {if (!head) return head;ListNode *left = head;ListNode *right = head;while (right){left = left->next;if (right->next)right = right->next->next;elsebreak;if (right&&left == right)break;;}if (!right || !right->next) return nullptr;left = head;while (left != right){left = left->next;right = right->next;}return left;}};


0 0
原创粉丝点击