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

❗❗142环形链表II

时间:2023-04-23 22:23:48浏览次数:39  
标签:II head 142 复杂度 链表 hash nodeSet

力扣刷题 142.环形链表 II-- day4

题目分析

这道题目难度较大, 特别是要求空间复杂度为 O(1)的时候

如果不追求空间复杂度的话, 可以使用 hash 表

把目前遍历的节点指针存入 hash 表, 当下次在 hash 表中找到该节点时, 即找到了答案

空间复杂度为 O(1)的解法:
较为复杂, 具有一定的数学分析
下次再实现

解法一、使用 unordered_set 作为 hash 表

ListNode *detectCycle(ListNode *head)
{
    unordered_set<ListNode *> nodeSet;
    while (head)
    {
        if (nodeSet.find(head) != nodeSet.end())
        {
            return head;
        }
        else
        {
            nodeSet.insert(head);
            head = head->next;
        }
    }
    return nullptr;
}

解法二、暂未实现

标签:II,head,142,复杂度,链表,hash,nodeSet
From: https://www.cnblogs.com/jianchuxin/p/17347944.html

相关文章

  • RAII
    (一)概念RAII全称是ResourceAcquisitionIsInitialization,翻译过来是资源获取即初始化,RAII机制用于管理资源的申请和释放。对于资源,我们通常经历三个过程,申请,使用,释放,这里的资源不仅仅是内存,也可以是文件、socket、锁等等。当一个对象创建的时候,自动调用构造函数,当对象超出作用......
  • 代码随想录算法训练营第四天 | 24.两两交换链表
     ......
  • [牛客]链表的回文结构
    牛客链接思路:找中间结点从中间结点开始对后半段进行逆置比较前半段和后半段相等是,不相等不是只需将我们前面写过的链表中间结点,逆置链表的代码复用,并加上如下代码即可最终代码:/*structListNode{intval;structListNode*next;ListNode(intx):val(x),ne......
  • 算法学习day03链表part01-203、707、206--待办
    //这块需求重新进行学习packageLeetCode.linkedlistpart01;publicclassListNode{//结点的值intval;//下一个结点ListNodenext;//节点的构造函数(无参)publicListNode(){}//节点的构造函数(有一个参数)publicLis......
  • 20-4-21--链表--两个有序链表序列的合并
    已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不......
  • STM32:IIC
    1IIC  iic全称interintegratedcircuit,集成电路总线;为串行通信接口协议;通过SCL、SDA2线进行板间通讯;  iic标准规定在iic协议在快速模式下传输速率最高可达400Kbits/s,在高速模式下最高3.4Mbits/s  以iic协议传输的eeprom存储器at24cxx,最大存储容量16K"bits",传输速率最......
  • 链表
    title:链表2、环形链表快慢指针,快指针一次走两步,慢指针一次走一步。单链表有环的话,快慢指针会相遇。/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/boolhasCycle(structListNode*head){......
  • 剑指Offer——53-II. 0~n-1中缺失的数字(c语言)
    title:剑指Offer53-II.0~n-1中缺失的数字(c语言)一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入:[0,1,3]输出:2示例2:输入:[0,1,2,3,4,5,6,7,9]输......
  • 剑指Offer——10-II.青蛙跳台阶问题(c语言)
    title:剑指Offer10-II.青蛙跳台阶问题(c语言)一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1。示例1:输入:n=2输出:2示例2:输入:n=7输出:21示例3:输入:n......
  • 剑指Offer——24.反转链表(c语言)
    title:剑指Offer24.反转链表(c语言)定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:$$0\leqslant节点个数\leqslant5000$$代码如下:/***Definitionforsingly-linkedlist.......