首页 > 其他分享 >LeetCode 142. 环形链表 II

LeetCode 142. 环形链表 II

时间:2022-08-24 14:22:30浏览次数:63  
标签:II head slow ListNode fast next 链表 index2 142

思路:
快慢指针法:当快指针与慢指针相遇时,分别从起点,相遇点开始走,相遇即为环入口

/**
 * 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* slow = head;
        ListNode* fast = head;

        while (fast && fast ->next) {
            slow = slow ->next;
            fast = fast ->next ->next;

            if (slow == fast) {
                ListNode* index1 = slow;
                ListNode* index2 = head;

                while (index1 != index2) {
                    index1 = index1 ->next;
                    index2 = index2 ->next;
                }

                return index2;
            }

        }

        return NULL;
    }
};

标签:II,head,slow,ListNode,fast,next,链表,index2,142
From: https://www.cnblogs.com/hjy94wo/p/16619732.html

相关文章

  • LeetCode 24. 两两交换链表中的节点
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*List......
  • KBJ5010-ASEMII整流桥oT电源专用KBJ5010
    编辑:llKBJ5010-ASEMII整流桥oT电源专用KBJ5010型号:KBJ5010品牌:ASEMI封装:KBJ-4特性:整流扁桥正向电流:50A反向耐压:1000V恢复时间:ns引脚数量:4芯片个数:4芯片尺寸:190M......
  • LeetCode 206. 反转链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • 链表冒泡排序
    publicListNodesortList(ListNodehead){ListNodeheadpre=newListNode();headpre.next=head;intlength=0;while(head!=null){......
  • 算法:两个链表的第一个公共节点
    问题输入两个链表,找出它们的第一个公共节点。解决//1、暴力解法classSolution{ListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){w......
  • 「数据结构与算法」链表 —— 看这一篇就够了(超详细)
     一、链表简介链表是一种物理存储单元上非连续、非顺序的存储结构,数据结构的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点......
  • P2622 关灯问题II——状压dp
    本题是一道十分好的状压dp练手题基本思路初看这道题时其实并没有什么思路,在看到\(n\le10\)时才想到使用状压dp有时候搜索时间复杂度很高,也没有方法优化到多项式复杂度,......
  • leetcode160:相交链表
    /***题目:*给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。*如果两个链表不存在相交节点,返回null。*注意......
  • LeetCode 541. 反转字符串 II
    思路:每次移动2k位,判断是否超过数组,超过则全部反转,没超过则反转到第i+k个classSolution{public:stringreverseStr(strings,intk){for(inti=0;......
  • Yii2 ElasticSearch aggregate (group)
    我想要统计的是country_code出现的次数,通过yii2的ElasticSearch扩展,上面的例子满足我的需要。业务场景:在fecify商城中,使用elasticSearch搜索,进行aggregategrou......