带环链表 II

给定一个链表,如果链表中存在环,则返回到链表中环的起始节点的值,如果没有环,返回null。

思路详解

class Solution {
public:
    /**
     * @param head: The first node of linked list.
     * @return: The node where the cycle begins. 
     *           if there is no cycle, return null
     */
    ListNode *detectCycle(ListNode *head) {
        // write your code here
        if (!head || !head->next) {
            return NULL;
        }
        
        ListNode *fast = head;
        ListNode *slow = head;
        
        while(fast->next && fast->next->next) {
            fast = fast->next->next;
            slow = slow->next;
            
            if(fast == slow) {
                ListNode *temp = head;
                while(fast != temp) {
                    temp = temp->next;
                    fast = fast->next;
                }
                return fast;
            } 
        }
      
        
        return NULL;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 描述 给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。 样例 给出 -21-...
    6默默Welsh阅读 234评论 0 0
  • 给定一个链表,如果链表中存在环,则返回到链表中环的起始节点的值,如果没有环,返回null。
    鬼谷神奇阅读 469评论 0 0
  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 1,535评论 0 6
  • 【声明】欢迎转载,但请保留文章原始出处→_→文章来源:http://www.jianshu.com/p/08d08...
    梦工厂阅读 3,787评论 3 31
  • 花含羞,月含羞, 红烛芳樽醉西楼,游丝袅情柔。 盟亦休,情亦休, 落花流水去悠悠 ,红袖掩清愁。 花飘零,叶飘零,...
    伊清欢阅读 534评论 2 6