LeetCode 解题思路 12(Hot 100)

在这里插入图片描述

解题思路:

  1. 定义三个指针: prev(前驱节点)、current(当前节点)、nextNode(临时保存下一个节点)
  2. 遍历链表: 每次将 current.next 指向 prev,移动指针直到 current 为 null。

Java代码:

public class Solution {public ListNode reverseList(ListNode head) {ListNode prev = null;ListNode current = head;while (current != null) {ListNode nextNode = current.next;current.next = prev;prev = current;current = nextNode;}return prev;}
}

复杂度分析:

  • 时间复杂度: O(n),需要遍历所有节点一次。
  • 空间复杂度: O(1),仅使用固定数量的额外空间。

在这里插入图片描述

解题思路:

  1. 找中点: 使用快慢指针,快指针每次移动两步,慢指针每次移动一步,直到快指针到达末尾。此时慢指针位于链表中点。
  2. 反转后半部分: 将中点之后的链表部分反转。
  3. 对称比较: 从头节点和中点开始,逐个比较对应节点的值是否相等。

Java代码:

public class Solution {public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) return true;ListNode slow = head, fast = head.next;while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}ListNode prev = null, curr = slow.next;while (curr != null) {ListNode nextNode = curr.next;curr.next = prev;prev = curr;curr = nextNode;}ListNode p1 = head, p2 = prev;while (p2 != null) {if (p1.val != p2.val) return false;p1 = p1.next;p2 = p2.next;}return true;}
}

复杂度分析:

  • 时间复杂度: O(n),所有操作均遍历链表一次。
  • 空间复杂度: O(1),仅使用常数额外空间。

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

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

相关文章

用数据唤醒深度好眠,时序数据库 TDengine 助力安提思脑科学研究

在智能医疗与脑科学快速发展的今天,高效的数据处理能力已成为突破创新的关键。安提思专注于睡眠监测与神经调控,基于人工智能和边缘计算,实现从生理体征监测、智能干预到效果评估的闭环。面对海量生理数据的存储与实时计算需求,安…

玩转若依二次开发之若依框架Springboot+Vue3

目录 一、使用(非重点) 0.准备工作 1.下载git地址 2.配置信息 3.系统启动 4.DIY主题样式和文案 二、使用(重点) 1.单表生成Java和vue3代码 1.1.创建用户表 1.2.生成Java和vue3代码 1.3.把生成代码复制到项目中 1.4.重…

llamafactory大模型微调教程(周易大模型案例)

1.环境说明 操作系统:ubuntu 20 基础模型:Qwen2.5-1.5B-Instruct 工具:llamafactory GPU:四张4090 2、环境部署 2.1 下载基础模型 # 1、下载 modelscope pip install modelscope#2、模型下载 cd /data/ cat >> download…

06 HarmonyOS Next性能优化之LazyForEach 列表渲染基础与实现详解 (一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 一、代码结构概览二、详细代码解析1. 数据源管理实现2. 数据结构定义3. 优化的列表项组件4. 主列表组件实现 一、代码结构概览 本文将详细解…

【Linux】线程同步与互斥

线程同步与互斥 一.线程互斥1.互斥相关概念2.互斥锁 Mutex3.互斥锁接口4.互斥锁实现原理5.互斥锁封装 二.线程同步1.同步相关概念2.条件变量 Condition Variable3.条件变量接口4.条件变量封装5.信号量 Semaphore6.信号量接口7.信号量封装 三.生产者 - 消费者模型1.基于 Blockin…

基于大数据的电影情感分析推荐系统

【大数据】基于大数据的电影情感分析推荐系统(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本系统通过结合Flask框架、Vue前端、LSTM情感分析算法以及pyecharts和numpy、pandas等技术&#x…

网络安全配置截图 网络安全i

网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全:Cyber Security(网络空间安全) 网络空间有独立且相互依存的信息基础设施和网络组成,包括互联网、电信网、计算机系统、嵌入式处理器和控…

测试用例详解

一、通用测试用例八要素   1、用例编号;    2、测试项目;   3、测试标题; 4、重要级别;    5、预置条件;    6、测试输入;    7、操作步骤;    8、预期输出 二、具体分析通…

mybatis映射文件相关的知识点总结

mybatis映射文件相关的知识点总结 mybatis官网地址 英文版:https://mybatis.org/mybatis-3/index.html 中文版:https://mybatis.p2hp.com/ 搭建环境 /* SQLyog Ultimate v10.00 Beta1 MySQL - 8.0.30 : Database - mybatis-label *****************…

智能体开发:推理-行动(ReAct)思维链提示

人类在处理一个需要多个步骤才能完成任务时,显著特点是能够将言语推理(内心独白)和实际行动融合在一起,在面对陌生或不确定的情况时通过这种方法学习新知识,做出决策,并执行,从而应对复杂的任务…

*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势

*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势 一、信息收集 1、扫靶机ip 经典第一步,扫一下靶机ip arp-scan -l 扫描同网段 nmap -sP 192.168.122.0/242、指纹扫描、端口…

Collab-Overcooked:专注于多智能体协作的语言模型基准测试平台

2025-02-27,由北京邮电大学和理想汽车公司联合创建。该平台基于《Overcooked-AI》游戏环境,设计了更具挑战性和实用性的交互任务,目的通过自然语言沟通促进多智能体协作。 一、研究背景 近年来,基于大型语言模型的智能体系统在复…

HTTP 与 HTTPS 协议:从基础到安全强化

引言 互联网的消息是如何传递的? 是在路由器上不断进行跳转 IP的目的是在寻址 HTTP 协议:互联网的基石 定义 HTTP(英文:HyperText Transfer Protocol,缩写:HTTP),即超文本传输协…

vue3:初学 vue-router 路由配置

承上一篇:nodejs:express js-mdict 作为后端,vue 3 vite 作为前端,在线查询英汉词典 安装 cnpm install vue-router -S 现在讲一讲 vue3:vue-router 路由配置 cd \js\mydict-web\src mkdir router cd router 我还…

【ARM内核】SWCLK/SWDIO引脚复用

我以CMS32L1032(ARMCortex-M0)单片机举例: 一、直接将下载端口引脚复用是会出问题的 电平可能跟别的IO不一样,然后还不好用,仔细阅读芯片手册: 然后禁用代码是: //禁用SM调试接口 *(volatil…

一套企业级智能制造云MES系统源码, vue-element-plus-admin+springboot

MES应该是继ERP之后制造企业信息化最热门的管理软件,它适应产品个性化与敏捷化制造需求,满足生产过程精益管理而产生和发展起来的信息系统。 作为企业实现数字化与智能化的核心支撑技术与重要组成部分,MES在帮助制造企业走向数字化、智能化等…

π0及π0_fast的源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司微调π0的部分实践

前言 ChatGPT出来后的两年多,也是我疯狂写博的两年多(年初deepseek更引爆了下),比如从创业起步时的15年到后来22年之间 每年2-6篇的,干到了23年30篇、24年65篇、25年前两月18篇,成了我在大模型和具身的原始技术积累 如今一转眼已…

MAVEN的环境配置

在下载好maven后或解压maven安装包后进行环境配置 1.在用户环境变量中 新建一个MAVEN_HOME 地址为MAVEN目录 注:地址为解压后maven文件的根目录!!! 2.在系统环境变量的path中添加该变量 %MAVEN_HOME%\bin 3. 测试maven安装是否成…

03 HarmonyOS Next仪表盘案例详解(二):进阶篇

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 文章目录 前言1. 响应式设计1.1 屏幕适配1.2 弹性布局 2. 数据展示与交互2.1 数据卡片渲染2.2 图表区域 3. 事件处理机制3.1 点击事件处理3.2 手势…

taosd 写入与查询场景下压缩解压及加密解密的 CPU 占用分析

在当今大数据时代,时序数据库的应用越来越广泛,尤其是在物联网、工业监控、金融分析等领域。TDengine 作为一款高性能的时序数据库,凭借独特的存储架构和高效的压缩算法,在存储和查询效率上表现出色。然而,随着数据规模…