算法——环形链表(leetcode141)

embedded/2024/11/20 7:19:53/

判断一个链表是否是环形链表,这题可以用快慢指针来解决,首先令快慢指针fastIndex、slowIndex等于head头节点,接着来一个循环 循环体是fastIndex步进两个单位slowIndex步进一个单位判断如果slowIndex等于fastIndex则是有环 因为fastIndex走的比slowIndex快所以如果链表无环那么fastIndex肯定最先遍历至链表的末尾,故循环条件是(fastIndex!=null&&fastIndex.next!=null)一定要注意的是循环体的条件一定不能颠倒我们使用短路与就会避免报空指针的错误情况(fastIndex已经为null了那么如果再执行表达式fastIndex.next就是空指针了)

/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val = x;* next = null;* }* }*/
public class Solution {public boolean hasCycle(ListNode head) {ListNode slowIndex = head;ListNode fastIndex = head;while (fastIndex != null&&fastIndex.next != null) {fastIndex = fastIndex.next.next;slowIndex = slowIndex.next;if (fastIndex == slowIndex)return true;}return false;}
}


http://www.ppmy.cn/embedded/139003.html

相关文章

华为VPN技术

1.启动设备 2.配置IP地址 [FW1]int g1/0/0 [FW1-GigabitEthernet1/0/0]ip add 192.168.1.254 24 [FW1-GigabitEthernet1/0/0]int g1/0/1 [FW1-GigabitEthernet1/0/1]ip add 100.1.1.1 24 [FW1-GigabitEthernet1/0/1]service-manage ping permit [FW2]int g1/0/0 [FW2-Gi…

MFC线程

一 、AfxBeginThread AfxBeginThread 是 MFC(Microsoft Foundation Classes,微软基础类库)中用于创建一个新线程的函数。它返回一个指向 CWinThread 类对象的指针,通过这个指针可以对创建出来的线程进行后续的操作和控制。 CWinT…

k-近邻算法(K-Nearest Neighbors, KNN)详解:机器学习中的经典算法

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

23、论文阅读:基于多分辨率特征学习的层次注意力聚合GAN水下图像增强

Hierarchical attention aggregation with multi-resolution feature learning for GAN-based underwater image enhancement 引言介绍相关工作2.1 传统方法2.1.1 图像增强方法2.1.2 图像复原方法 基于深度学习的方法基于卷积神经网络(CNN)的方法基于生成…

Cloud Native 云原生后端的开发注意事项

在云原生后端开发里,数据管理和存储这块得好好弄。数据库选型得综合考虑,像关系型数据有复杂查询需求就选 MySQL、PostgreSQL,海量非结构化数据就可以考虑 MongoDB、Cassandra 这些。设计数据库得遵循规范化原则,像设计电商订单表…

如何利用virtualenv和python命令创建Python虚拟环境

一、引言 创建Python虚拟环境可以利用多种方法来实现,如:Anaconda3、Miniconda、virtualenv以及python自带的命令(python -m )进行创建。 Anaconda3、Miniconda创建python虚拟环境时,主机必须要接入互联网远程channel中取下下载需要的包才可…

键盘上打出反引号符号(´),即单个上标的撇号(这个符号与反引号 ` 不同,反引号通常位于键盘的左上角)

文章目录 问题分析1. Windows系统2. Mac系统3. Linux系统4. 手机或平板设备(iOS/Android)5. 特殊键盘布局 问题 键盘上如何打出这个符号分析 要在键盘上打出反引号符号(),即 单个上标的撇号(这个符号与反…

保姆级Redis安装教程

安装 redis 首先,确保你的系统是最新的。可以通过运行以下命令来更新你的软件包列表: sudo apt update 然后,使用apt安装Redis: sudo apt install redis-server -y 配置Redis支持远程连接 默认情况下,Redis仅监听…