首页 > 其他分享 >141.环形链表

141.环形链表

时间:2024-08-03 15:53:09浏览次数:14  
标签:head ListNode 141 pos 环形 链表 next true

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。

解析:哈希表保存指向链表节点的指针,如果在哈希表里查到了当前指针,则为环形链表。

用unordered_set。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {
        unordered_set<ListNode*> value;
        ListNode* p;
        p=head;
        while(p){
            if(value.count(p)){
                return true;
            }
            value.insert(p);
            p=p->next;
        }
        return false;
    }
};

标签:head,ListNode,141,pos,环形,链表,next,true
From: https://blog.csdn.net/u010012355/article/details/140891035

相关文章

  • LeetCode | 单链表操作
    LeetCode203移除链表元素LeetCode707设计链表LeetCode206反转链表主类ListNodepackagecom.github.dolphinmind.linkedlist.uitls;/***@authordolphinmind*@ClassNameListNode*@description*@date2024/8/3*///链表组成元素:节点publicclass......
  • 信友队集训营--1--链表
    算法随笔(1):信友队集训营--1--链表链表单向链表计算机常见的两种存储结构分别是顺序存储和链式存储顺序存储(以数组方式呈现)优点有:操作方便,随机存取,查找元素的时间复杂度为O(1)缺点有:需要预设空间,过大浪费,过小越界。插入或删除元素不方便,需要O(N)的复杂度链式存储(以链表方式呈现)......
  • Python数据结构第二天—循环链表、树、二叉搜索树
    双向链表之前学习的单向链表只能从头遍历到尾,过程是单向的,而双向链表既可以从头遍历到尾,也可以从尾遍历到头,它的过程是双向的。既然它是双向的,那么我们要实现一个双向链表,就需要在单向链表的基础上,给每一个结点增加一个向前的引用。双向链表的创建:"""我们要实现的是一......
  • 链表尾插法、头删、尾删,共用体、位运算。
    一、链表1、尾插程序:2、头删3、尾删4、清空链表二、共用体1、定义:union 共用体名(首字母大写。所占字节大小:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。共用体变量所占的内存长度等于最长的成员的长度。但是整体大......
  • c语言结构体的概述,定义结构体变量类型的方法,结构体变量的引用,结构体变量的初始化,结构
    1.C语言结构体的概述在C语言中,结构体(struct)是一种复合数据类型,用于将不同类型的数据组合在一起。它可以包含基本数据类型(如int、float、char等)以及其他结构体。结构体非常适合表示具有多种属性的复杂数据,如学生信息(包含姓名、年龄、成绩等)或坐标点(包含x和y坐标)。结构......
  • 【数据结构算法经典题目刨析(c语言)】判断链表是否有环(图文详解)
    ......
  • 数据结构: 单向链表
    目录一、链表的概念及结构二、单链表的实现2.1头文件2.2各个功能的实现2.2.1内存申请 2.2.2头插,尾插,头删,尾删头插 尾插 头删尾删 2.2.3查找数据 2.2.4指定位置前中后的数据增删指定位置之前插入数据指定位置之后插入数据删除指定位置之后数据删......
  • 双向链表的实现
    1、双向链表示意图 2、双向链表实现(1)结构体定义typedefintLTDataType;typedefstructListNode{ LTDataTypedata; structListNode*prev; structListNode*next; }LTNode;(2)初始化/****************初始化*****************/LTNode*ListInit(LTNode*phead......
  • 创建一个简单的双链表
    1.ListNode.h头文件#pragmaonce#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>typedefintLTDataType;typedefstructListNode{ structListNode*next; structListNode*prev; LTDataTypedata;}LN;//初始化......
  • c语言数据结构-单链表
    typedefstructLNode{   Elemtypedata;   structLNode*next;}LNode,*Linklist;//初始化单链表(不带头节点)boolInitList(LinkList&L){   L=NULL;   returntrue;}插入boolListInsert(LinkList&L,inti,Elemtypee){   if(i<1)  ......