Leetcode面试经典150题-141.环形链表

news/2024/9/18 11:13:47/ 标签: leetcode, 面试, 算法, 链表

题目比较简单,重点是理解思想

 解法都在代码里,不懂就留言或者私信

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {/**对于环形链表,也就是说从头遍历走到了重复的节点,当然我们按照最简单的解法,拿一个set记录一下,如果走到重复的就返回true但是这个题目恐怕考察的也不是这个,本题应该考察快慢指针,这里的解法是快指针每次走两步,慢指针每次走一步,如果二者能相遇就是有环,如果快指针走到了null就是无环*/public boolean hasCycle(ListNode head) {if(head == null || head.next == null) {return false;}/**否则定义快慢指针,快慢指针直接指定为各走一步或者两步 */ListNode fast = head.next.next;ListNode slow = head.next;/**退出循环有两种可能性:1.fast和slow相等,这就是有环 2.fast已经是null了(这里要加fast.next!=null是为了避免空指针这个判断也可以写在循环里面),这种无环 */while(fast != null && fast.next != null && fast != slow) {fast = fast.next.next;slow = slow.next;}return fast == slow? true : false;}
}


http://www.ppmy.cn/news/1524791.html

相关文章

克雷格·费德里吉谈Apple Intelligence保密技术背后的挑战

苹果必须实现克雷格-费德里吉所说的突破,这样 Apple Intelligence公司才能在云中使用大型语言模型,同时还能保护用户隐私,苹果是这样做的。在"It’s Glowtime"活动中,苹果公司谈到了私有云计算作为保护用户隐私的方式。…

高级算法设计与分析 学习笔记5 红黑树

定义: 根节点必黑,红节点孩子必黑,叶子节点(外部节点,null的那种)也是黑,每条路的黑节点数量一致。 首先看各个节点的平衡值,从根节点开始算,哪个最后超过1就是从这里开始…

【Unity新闻】Unity将取消Runtime费用

兜兜转转又回来了,一大早就看到Unity发布新闻,将取消Runtime费用,但同时也将提高各级付费账号的年费。这是新任CEO Matt上任后的价格调整策略。 非常不错的一点是: 当 Unity 6 在今年晚些时候发布时,使用 Unity Pers…

问:有一种Java语法叫注解,一起来扒一扒~

在Java编程语言中,注解(Annotation)和元注解(Meta-Annotation)为开发者提供了丰富的机制来嵌入元数据,从而增强代码的可读性、可维护性,并允许编译器或运行时环境进行特定的处理。 一、注解&am…

大型语言模型:通过代码生成、调试和 CI/CD 集成改变软件开发的游戏规则

借助 AI,软件开发领域正在经历一个突破性阶段,不断集成最先进的大型语言模型,如 GPT-4 和 Claude Opus。这些模型超越了传统开发人员工具的作用,直接帮助开发人员将口头指令转换为跨各种编程语言的可执行代码,从而加快…

深度学习的零碎知识点

显卡内存 什么是显卡内存 简单来说就是,Windows 会在物理显存/「专用 GPU 内存」不够用或只有集成显卡的情况下,将物理内存 RAM 当作 GPU 的虚拟显存/「共享 GPU 内存」来使用。 什么是 Windows「共享 GPU 内存」,它与 VRAM 有什么不同 (s…

【学习笔记】SSL密码套件之哈希

本篇将介绍TLS/SSL密码套件中常用的哈希算法,包括Poly1305、SHA384、SHA256、SHA、MD5 以上的哈希算法将作为 MAC 使用 MAC - Message Authentication Code 为批量数据提供了完整性(Integrity)以及真实性(Authentication&#xf…

yolo学习 (一) 安装yolov8及训练

随便搞个python环境,直接装或者anaconda都行,python版本最低3.8以上 一、安装yolov8 (cpu版本) pip install ultralytics yolov8安装版本比较省事,不过这里默认装的是CPU版本 import torch print(torch.__version_…

前端 + 接口请求实现 vue 动态路由

前端 接口请求实现 vue 动态路由 在 Vue 应用中,通过前端结合后端接口请求来实现动态路由是一种常见且有效的权限控制方案。这种方法允许前端根据用户的角色和权限,动态生成和加载路由,而不是在应用启动时就固定所有的路由配置。 实现原理…

【springboot】整合spring security 和 JWT

目录 1. 整合spring security 1. 导入依赖 2. 配置类 3. 实体类实现UserDetails接口 4. 业务逻辑实现类实现UserDetailsService接口 5. 控制类实现登录功能 6. 测试登录功能 2. 分析源码 1. UsernamePasswordAuthenticationToken 2. A…

windows JOB作业类的处理

windows JOB作业类的处理 windows JOB作业类的处理 文章目录 windows JOB作业类的处理 # windows JOB作业类的处理 /* moduel Job.h Notices: */#pragma once #include <malloc.h> //for _alloca; class CJob { private:HANDLE m_hJob; public:CJob(HANDLE hJob NULL);…

论文翻译:USENIX-2021 Extracting Training Data from Large Language Models

Extracting Training Data from Large Language Models 从大型语言模型中提取训练数据 https://www.usenix.org/system/files/sec21-carlini-extracting.pdf 文章目录 从大型语言模型中提取训练数据摘要1 引言 摘要 现在&#xff0c;发布在私有数据集上训练的大型&#xff…

828华为云征文|基于华为云Flexus云服务器X部署Minio服务

文章目录 ❀前言❀Minio简介❀部署环境准备❀yum环境配置❀安装docker❀获取镜像❀创建挂载目录❀启动容器❀查看容器状态❀安全组开放❀浏览器访问❀总结 ❀前言 大家好&#xff0c;我是早九晚十二。 近期华为云推出了最新的华为云Flexus云服务器X&#xff0c;这款云主机在算…

windows 显示进程地址空间

windows 显示进程地址空间 windows 显示进程地址空间 文章目录 windows 显示进程地址空间显示进程地址空间 显示进程地址空间 /* 3-ProcessInfo.cpp 显示进程地址空间 */#include "..\\CommonFiles\\CmnHdr.h" #include "..\\CommonFiles\\Toolhelp.h"#i…

Debian命令行设置samba共享目录

Samba 是一个用于在 Unix/Linux 系统上实现 SMB/CIFS 网络协议的软件套件,使这些系统能够与 Windows 网络共享文件和打印机。在 Debian 10 上安装和配置 Samba 可以实现 Linux 和 Windows 之间的无缝文件共享。 安装 Samba 1. 更新包列表并安装 Samba: sudo apt update sud…

dplyr、tidyverse和ggplot2初探

dplyr、tidyverse 和 ggplot2 之间有紧密的联系&#xff0c;它们都是 R 语言中用于数据处理和可视化的工具&#xff0c;且都源于 Hadley Wickham 的工作。它们各自有不同的功能&#xff0c;但可以无缝协作&#xff0c;帮助用户完成从数据处理到数据可视化的工作流。以下是它们之…

Kubernetes 系列 | k8s入门运维

目录 一、K8S集群搭建1.1 部署方式1.2 了解kubeadm1.3 部署流程1.3.1 初始化配置1.3.2 安装容器运行时1.3.3 安装K8S软件包1.3.4 创建集群 二、集群高可用1.1 集群高可用-堆叠1.2 集群高可用-集群外etcd 三、Pod运维3.1 Pod运维3.2 Pod的生命周期3.3 Pod状况3.4 Pod阶段3.5 容器…

java的BigInteget介绍

当java程序需要处理一个非常大的整数&#xff0c;超过long类型的取值范围&#xff0c;就无法用基本类型对数值接收&#xff0c;这样就要用到BigInteget类。 BigInteger类的方法 BigInteger(String val) 将字符串变为BigInteger类型数据 示例代码如下 import java.math.BigI…

Linux 驱动编写框架 并编译导入开发板

向内核新加文件&#xff1a;例如 demo1.c 1. 创建并编辑新的文件 #include <linux/init.h> #include <linux/kernel.h> #include <linux/types.h> #include <linux/fs.h> #include <linux/module.h> #include <linux/kdev_t.h> #include …

大数据之Spark(一)

九、Spark&#xff08;PySpark 3.2&#xff09; 9.1、基本概念 定义&#xff1a;用于大规模数据处理的统一分析引擎 运行模式 本地模式&#xff08;单机&#xff09;&#xff1a;一个独立进程&#xff0c;多个线程模拟spark运行时环境Standalone模式&#xff08;集群&#…