蓝桥与力扣刷题(234 回文链表)
题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
示例 1:

输入:head = [1,2,2,1] 输出:true
示例 2:

输入:head = [1,2] 输出:false
解题思路+代码:



代码:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {/**思路:1.判断链表是否为空或者单节点链表,为空直接返回true2.添加快慢指针,快指针一次走2步,慢指针一次走1步,即快指针的速度是慢指针的2倍(此时当快指针遍历到链表的最后,慢指针遍历到链表的中间)3.反转后半部分链表,与前半部分链表逐一匹配,一一对应返回true,否则返回false*/if (head == null || head.next == null){return true;}// 声明快慢指针ListNode fastNode = head;ListNode slowNode = head;// 遍历链表,慢指针找到链表中点while(fastNode != null && fastNode.next != null){slowNode = slowNode.next;fastNode = fastNode.next.next;}//反转慢指针后半部分链表与前半部分链表逐一匹配ListNode resversHalfList = resversList(slowNode);ListNode P1 = head;ListNode p2 = resversHalfList;boolean res = true;while(p2 != null){if(P1.val != p2.val){res = false;break;}P1 = P1.next;p2 = p2.next;}// resversList(resversHalfList);return res;}private ListNode resversList(ListNode head){ListNode pre = null;ListNode cur = head;while(cur != null){ListNode nextTemp = cur.next;cur.next = pre;pre = cur;cur = nextTemp;}return pre;}}
总结:(错误思路:写这道题时我最初的思路是找到中间最大的数,然后依次向左右两边逐一遍历判断是否对称相等,一一对应为true,否则为false。)没错,上面的思路有很大的问题,且时间空间复杂度会相对复杂,因此我使用AI查询了我解题思路的错误所在。一:在回文链表当中,最大的数可能不止一个,此时的回文链表在找到最大的中间数依次向左右两侧依次遍历也可能会得到与预期相反的结果;二:通过指针向左右依次遍历判断不如快慢指针(上述代码有相应的解释如何找到链表的中点)找到中点后将前(后)链表部分反转,首先可判断前后部分的长度是否相等,不相等直接返回false,长度相等时则继续逐一匹配,直到确定是回文链表时返回true,使用快慢指针来遍历链表的时间和空间复杂度相对而言较简单,耗时较短。
相关文章:
蓝桥与力扣刷题(234 回文链表)
题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2: 输入&…...
Google C++ Style / 谷歌C++开源风格
文章目录 前言1. 头文件1.1 自给自足的头文件1.2 #define 防护符1.3 导入你的依赖1.4 前向声明1.5 内联函数1.6 #include 的路径及顺序 2. 作用域2.1 命名空间2.2 内部链接2.3 非成员函数、静态成员函数和全局函数2.4 局部变量2.5 静态和全局变量2.6 thread_local 变量 3. 类3.…...
Windows图形界面(GUI)-QT-C/C++ - QT Tab Widget
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 一、概述 1.1 什么是 QTabWidget? 1.2 使用场景 二、常见样式 2.1 选项卡式界面 2.2 动态添加和删除选项卡 2.3 自定义选项卡标题和图标 三、属性设置 3.1 添加页面&…...
【大数据技术】教程05:本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
C++:结构体和类
在之前的博客中已经讲过了C语言中的结构体概念了,重复的内容在这儿就不赘述了。C中的结构体在C语言的基础上还有些补充,在这里说明一下,顺便简单地讲一下类的概念。 一、成员函数 结构体类型声明的关键字是 struct ,在C中结构体…...
MATLAB的数据类型和各类数据类型转化示例
一、MATLAB的数据类型 在MATLAB中 ,数据类型是非常重要的概念,因为它们决定了如何存储和操作数据。MATLAB支持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言,这意味着变量的数…...
UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备
1 将用到的图标找好,放一起 DataTable里对应好图标 测试一下能正确获取: 2 装备增强属性思路 给FMyItemInfo添加一个枚举变量记录类型(物品,道具,装备,饰品,武器)--> 扩展DataT…...
C++泛型编程指南09 类模板实现和使用友元
文章目录 第2章 类模板 Stack 的实现2.1 类模板 Stack 的实现 (Implementation of Class Template Stack)2.1.1 声明类模板 (Declaration of Class Templates)2.1.2 成员函数实现 (Implementation of Member Functions) 2.2 使用类模板 Stack脚注改进后的叙述总结脚注2.3 类模板…...
使用MATLAB进行雷达数据采集可视化
本文使用轮趣科技N10雷达,需要源码可在后台私信或者资源自取 1. 项目概述 本项目旨在通过 MATLAB 读取 N10 激光雷达 的数据,并进行 实时 3D 点云可视化。数据通过 串口 传输,并经过解析后转换为 三维坐标点,最终使用 pcplayer 进…...
【Elasticsearch】allow_no_indices
- **allow_no_indices 参数的作用**: 该参数用于控制当请求的目标索引(通过通配符、别名或 _all 指定)不存在或已关闭时,Elasticsearch 的行为。 - **默认行为**: 如果未显式设置该参数,默认值为 …...
54【ip+端口+根目录通信】
上节课讲到,根目录起到定位作用,比如我们搭建一个php网站后,注册系统是由根目录的register.php文件执行,那么我们给这个根目录绑定域名https://127.0.0.1,当我们浏览器访问https://127.0.0.1/register.php时࿰…...
python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法
回溯算法 「所有可能的结果」,而不是「结果的个数」,一般情况下,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」。 回溯算法关键在于:不合适就退回上一步。在回溯算法中,递归用于深入到所有可能的分支&…...
DeepSeek横空出世,AI格局或将改写?
引言 这几天,国产AI大模型DeepSeek R1,一飞冲天,在全球AI圈持续引爆热度,DeepSeek R1 已经是世界上最先进的 AI 模型之一,可与 OpenAI 的新 o1 和 Meta 的 Llama AI 模型相媲美。 DeepSeek-V3模型发布后,在…...
聚簇索引、哈希索引、覆盖索引、索引分类、最左前缀原则、判断索引使用情况、索引失效条件、优化查询性能
聚簇索引 聚簇索引像一本按目录排版的书,用空间换时间,适合读多写少的场景。设计数据库时,主键的选择(如自增ID vs 随机UUID)会直接影响聚簇索引的性能。 什么是聚簇索引? 数据即索引:聚簇索引…...
OpenAI 实战进阶教程 - 第四节: 结合 Web 服务:构建 Flask API 网关
目标 学习将 OpenAI 接入 Web 应用,构建交互式 API 网关理解 Flask 框架的基本用法实现 GPT 模型的 API 集成并返回结果 内容与实操 一、环境准备 安装必要依赖: 打开终端或命令行,执行以下命令安装 Flask 和 OpenAI SDK: pip i…...
python的pre-commit库的使用
在软件开发过程中,保持代码的一致性和高质量是非常重要的。pre-commit 是一个强大的工具,它可以帮助我们在提交代码到版本控制系统(如 Git)之前自动运行一系列的代码检查和格式化操作。通过这种方式,我们可以确保每次提…...
架构技能(四):需求分析
需求分析,即分析需求,分析软件用户需要解决的问题。 需求分析的下一环节是软件的整体架构设计,需求是输入,架构是输出,需求决定了架构。 决定架构的是软件的所有需求吗?肯定不是,真正决定架构…...
Linux环境下的Java项目部署技巧:安装 Nginx
Nginx 的简介: Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP / POP3 / SMTP 代理服务器。它可以作为网站静态资源的 web 服务器,也可以作为其他应用服务器的反向代理服务器。同时, Nginx 还具有负载均衡的功能。 N…...
前端 Vue 性能提升策略
一、引言 前端性能优化是确保 Web 应用快速响应和流畅用户体验的关键。对于使用 Vue.js 构建的应用,性能优化不仅涉及通用的前端技术,还包括针对 Vue 特性的特定优化措施。本文将从多个方面探讨如何全面提升前端和 Vue 应用的性能。 二、前端性能优化基础 1. 减少初始加载…...
深入理解linux中的文件(上)
1.前置知识: (1)文章 内容 属性 (2)访问文件之前,都必须打开它(打开文件,等价于把文件加载到内存中) 如果不打开文件,文件就在磁盘中 (3&am…...
MPLAB XC编译器许可证全解析:从免费版到专业版,嵌入式开发避坑指南
1. 项目概述:从许可证开始,理解嵌入式开发的“入场券”在嵌入式开发领域,尤其是围绕Microchip的PIC和AVR系列MCU进行项目时,MPLAB XC编译器几乎是绕不开的工具。很多开发者,特别是刚入行的朋友,往往一上来就…...
OpenClaw AVP:构建统一音视频协议栈,实现多协议流媒体处理
1. 项目概述:一个面向音视频处理的协议栈最近在整理一些音视频项目时,又翻到了avp-protocol/openclaw-avp这个仓库。对于从事流媒体、实时通信或者音视频编解码开发的工程师来说,看到avp这个缩写,第一反应多半是 “Audio-Video Pr…...
从ASCII到机器码:深入解析HEX文件的结构与校验机制
1. HEX文件的前世今生:从ASCII到机器码的桥梁 第一次接触HEX文件时,我也被那一串串看似毫无规律的十六进制字符搞得一头雾水。直到后来在嵌入式开发中频繁使用HEX文件进行固件升级,才真正理解了这个"翻译官"的重要性。HEX文件本质上…...
别再死记硬背公式了!用MATLAB besselj函数5分钟搞定贝塞尔函数可视化
用MATLAB可视化贝塞尔函数:从数学恐惧到图形直觉的5分钟蜕变 当《数学物理方法》教材上那些密密麻麻的积分符号和无穷级数开始在你眼前跳舞,当教授在黑板上推导贝塞尔方程时粉笔灰与数学焦虑一起飞扬——是时候让MATLAB成为你理解这些特殊函数的"视…...
aztfexport扩展开发:如何自定义资源映射和导入逻辑
aztfexport扩展开发:如何自定义资源映射和导入逻辑 【免费下载链接】aztfexport A tool to bring existing Azure resources under Terraforms management 项目地址: https://gitcode.com/gh_mirrors/az/aztfexport Azure Export for Terraform(a…...
TestDisk与PhotoRec:免费开源的数据恢复双雄终极指南
TestDisk与PhotoRec:免费开源的数据恢复双雄终极指南 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 在数字时代,数据丢失是每个人都会遇到的噩梦。无论是误删除重要文件、分区表损坏…...
避开这3个坑,你的HMC7044时钟输出才稳定:从VCO选择到奇数分频实战
HMC7044时钟系统设计避坑指南:从VCO选型到分频配置的工程实践 在高速数字系统设计中,时钟信号的稳定性往往决定着整个系统的性能上限。作为业界广泛使用的高性能时钟发生器,HMC7044凭借其出色的抖动性能和灵活的配置选项,成为众多…...
Linux下Vivado安装卡死解决方案:手动配置与深度排查指南
1. 问题定位:为什么Vivado安装会“卡”在最后一步?如果你在Linux系统上安装Xilinx Vivado时,遇到了安装程序进度条走到最后,却迟迟不结束,甚至界面卡死、无响应的情况,先别急着砸键盘。这几乎是每一位从Win…...
政府新媒体宣发审核和监测对内容合规有哪些意义
在政务新媒体全谱系发展的今天,信息发布面临着意识形态安全、法律合规、公民隐私保护等多重考验。建立完善的宣发审核与监测机制,对保障内容合规具有决定性的意义,它是数字政府建设中不可或缺的“安全阀”与“过滤器”。以下是宣发审核和监测…...
Play Integrity API Checker:5分钟快速掌握Android设备安全检测终极指南
Play Integrity API Checker:5分钟快速掌握Android设备安全检测终极指南 【免费下载链接】play-integrity-checker-app Get info about your Device Integrity through the Play Intergrity API 项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-chec…...
