【数据结构】环状链表OJ题

✨✨✨专栏:数据结构     

  🧑‍🎓个人主页:SWsunlight

       

一、OJ 环形链表:

 快慢指针即可解决问题:

2情况:

  1. 快指针走到结尾(不是环)
  2. 快指针和尾指针相遇(是环的)

竟然是2倍关系,那么入环以后,也就是快指针走一次,与慢指针的距离会缩减1.知道N=0,相遇

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
//快慢指针
bool hasCycle(struct ListNode *head) {ListNode* phead = head;ListNode* perv = head;//先判断perv是否为空,若是为空,则不会进继续计算,若是先判断perv下个节点,若是perv为NULL,就会导致对空指针进行解引用while(perv&&perv->next){perv = perv->next->next;phead = phead->next;if(perv == phead){return true;}}return false;
}

二、OJ  环形链表II:

思路:

比1多了一个条件要返回入环时的节点,实现环形相遇可以直接CV过来,要解决的是怎么找到入环节点:看下面式子,(X-1)*N意思不就是相遇后,(一直转圈)会回到这个点;N-C 不就是相当于L么;此时可以让head开始遍历 从头开始走,慢指针让他从相遇点继续走,当到如环点时必相遇;

 typedef struct ListNode ListNode;
//快慢指针
struct ListNode *detectCycle(struct ListNode *head) {ListNode* phead = head;ListNode* perv = head;//先判断perv是否为空,若是为空,则不会进继续计算,若是先判断perv下个节点,若是perv为NULL,就会导致对空指针进行解引用while(perv&&perv->next){perv = perv->next->next;phead = phead->next;if(phead == perv){while(perv!=head){perv = perv->next;head = head->next;}return head;}}return NULL;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(CVE-2012-1823)PHP-CGI远程代码执行漏洞(80端口)

(CVE-2012-1823)PHP-CGI远程代码执行漏洞(80端口) 一、介绍二、漏洞影响三、原理四、漏洞复现 一、介绍 php-cgi是一个类似于消息的“传递者”,它接收web容器收到的http数据包,并把里面的数据交给PHP解释器…

清华发布Temporal Scaling Law,解释时间尺度对大模型表现的影响

众所周知, 语言模型调参! 预训练语言模型调参!! 预训练大语言模型调参!!! 简直就是一个指数级递增令人炸毛的事情,小编也常常在做梦,要是只训练几步就知道现在的超参…

python选修课期末考试复习

目录 记住输出小数的格式文件条件判断随想循环小星星计算金额猜数字折纸 函数找最大值 基础知识总结 记住输出小数的格式 输出a,保留两位小数 %.2f%a打开文件有点儿难,多记几遍格式吧 文件的格式后面有冒号,谨慎一点,都用双引号…

基于C++和Python基础的Golang学习笔记

文章目录 一、基础1.DOS命令2.变量(1)局部变量(2)全局变量(3)数据类型(4)指针(5)运算符(6)自定义数据类型 3.语句(1&#…

第十四篇:数据库设计精粹:规范化与性能优化的艺术

数据库设计精粹:规范化与性能优化的艺术 1. 引言 1.1 数据库设计在现代应用中的核心地位 在数字化的浪潮中,数据库设计如同建筑师手中的蓝图,是构建信息大厦的基石。它不仅关乎数据的存储与检索,更是现代应用流畅运行的生命线。…

【SpringBoot】解锁后端测试新境界:学习Mockito与MockMvc的单元测试魔法

文章目录 前言:Java常见的单元测试框架一.Junit5基础二.SpringBoot项目单元测试1.添加依赖2.SpringBoot单元测试标准结构3.SpringBoot单元测试常用注解 三.单元测试中如何注入依赖对象1.真实注入(AutoWired、 Resource)2.Mock注入2.1.前言2.2…

资料总结分享:瀑布图,GESA,生存曲线

目录 瀑布图 GESA 生存曲线 瀑布图 肿瘤的瀑布图是一种常用的数据可视化方式,用于展示个体患者或研究样本的肿瘤基因组学数据,通常包括基因突变、基因拷贝数变异、染色体重排等信息。 颜色编码: 柱状图通常会使用颜色编码来表示不同类型…

Redis的数据淘汰策略——Java全栈知识(19)

Redis的数据淘汰策略 什么是数据淘汰策略 数据过期策略是 redis 中设置了 TTL 的数据过期的时候 Redis 的处理策略。数据淘汰策略是 Redis 内存不够的时候, 数据的淘汰策略:当 Redis 中的内存不够用时,此时在向 Redis 中添加新的 key, 那么…

IEEE 802.11标准

在IEEE 802.11标准中使用了扩频通信技术,主要作用是使得抗干扰性更强。 IEEE 802.11在MAC层采用了CSMA/CA协议。 IEEE 802.1x是一种基于端口认证协议。

开源web在线数据库设计软件 —— 筑梦之路

GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator. 简介 DrawDB是一款多功能且用户友好的在线工具,允许用户轻松设计数据库实体关系。通过简单直观的界面,DrawDB使用户能够创建图表、导出SQL脚本…

kettle经验篇:MongoDB-delete插件问题

目录 项目场景 问题分析 解决方案 MongoDB Delete插件使用总结 项目场景 项目使用的ODS层数据库是MongoDB;在数据中心从DB层向ODS层同步数据过程中,发现有张ODS表在同步过程中,数据突然发生锐减,甚至于该ODS表数据清0。 同步…

算法设计与分析 例题 绘制Huffman树、循环赛、分治、最短路与动态规划

1.考虑用哈夫曼算法来找字符a,b,c,d,e,f 的最优编码。这些字符出现在文件中 的频数之比为 20:10:6:4:44:16。要求: (1)(4 分)简述使用哈夫曼算法构造最优编码的基本步骤; (2)&…

Oracle 流stream数据的复制

Oracle 流stream数据的复制 --实验的目的是捕获scott.emp1表的变化,将变化应用到远程数据库scott.emp1表中。 --设置初始化参数 AQ_TM_PROCESSES1 COMPATIBLE9.2.0 LOG_PARALLELISM1 GLOBAL_NAMEStrue JOB_QUEUE_PROCESSES2 --查看数据库的名称,我的为o…

2024中国(重庆)机器人展览会8月举办

2024中国(重庆)机器人展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 2024中国重庆机器人展会将汇聚机器人全产业链知名企业,世界科技领先的生产制造企业与来自多个国家和地区…

蓝桥杯-网络安全比赛(6) 模拟实验 Metasploit 控制并获取Windows 登录HASH、LM Hash和NTLM Hash密文解析

窃取WINDOWS账号密码 系统环境:主机(Windows系统 IP:192.168.126.129),虚拟机(KALI系统 IP:192.168.126.3),两者需要能通过本地网络互通互连。 攻击工具:Metasploit是一…

改变浏览器大小,图片(img)内容居中显示img标签,不是背景图

改变浏览器大小,图片&#xff08;img&#xff09;内容居中显示&#xff0c;img标签&#xff0c;不是背景图 效果直接上图&#xff1a; 上代码&#xff1a; <!DOCTYPE html> <html> <head><title>测试图片居中显示&#xff0c;高度不变只变宽度<…

Electron学习笔记(五)

文章目录 相关笔记笔记说明 七、系统1、系统对话框2、自定义窗口菜单3、系统右键菜单4、快捷键(1)、监听网页按键事件 &#xff08;窗口需处于激活状态&#xff09;(2)、监听全局按键事件 &#xff08;窗口无需处于激活状态&#xff09;(3)、补充&#xff1a;自定义窗口菜单快捷…

异常处理/ROS2异常处理模块源码解读与浅析

文章目录 概述ros2/rcutils/src/error_handling模块自身异常处理错误状态结构与存储本模块初始化错误状态的设置错误状态的获取错误状态的清理不丢失旧错误状态把手段还原为目的其他 概述 本文从如下几个方面对 ROS2.0 中 rcutils 库 error_handling 错误处理模块的源码进行解…

花了24小时做的采购、库存、进销存excel模板,真心好用,免费分享

花了24小时做的采购、库存、进销存excel模板&#xff0c;真心好用 在企业的日常运营中&#xff0c;进销存管理是一项至关重要的任务。它不仅涉及到商品的采购、销售和库存管理&#xff0c;还直接影响到企业的财务状况和市场竞争力。为了提高管理效率&#xff0c;许多企业选择使…

Redis 的 SDS 和 C 中字符串相比有什么优势?

C 语言使用了一个长度为 N1 的字符数组来表示长度为 N 的字符串&#xff0c;并且字符数组最后一个元素总是 \0&#xff0c;这种简单的字符串表示方式 不符合 Redis 对字符串在安全性、效率以及功能方面的要求。 C语言的字符串可能有什么问题&#xff1f; 这样简单的数据结构可…