回文链表00

news2024/10/6 14:38:59

题目链接

回文链表

题目描述

注意点

  • 回文的定义:回文就是反转以后和以前一样的就是回文结构
  • 用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题

解答思路

  • 用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题要求有限遍历且避免使用O(n) 额外空间,避免使用 O(n)额外空间的方法就是改变输入,需要将链表后半部分元素值原地翻转,翻转后将前半部分链表与后半部分链表的相应值进行判断即可

代码

class Solution {
    public boolean isPalindrome(ListNode head) {
        if (head == null) {
            return false;
        }
        ListNode slow = head;
        ListNode quick = head;
        while (quick.next != null && quick.next.next != null) {
            slow = slow.next;
            quick = quick.next.next;
        }
        ListNode headOfRear = slow.next;
        ListNode prevNode = reverseList(headOfRear);
        while (prevNode != null) {
            if (head.val != prevNode.val) {
                return false;
            }
            head = head.next;
            prevNode = prevNode.next;
        }
        slow.next = reverseList(headOfRear);
        return true;
    }

    public ListNode reverseList(ListNode node) {
        ListNode prevNode = null;
        ListNode currNode = node;
        while (currNode != null) {
            ListNode nextNode = currNode.next;
            currNode.next = prevNode;
            prevNode = currNode;
            currNode = nextNode;
        }
        return prevNode;
    }
}

关键点

  • 回文的定义
  • 找到后半部分链表
  • 将链表进行翻转
  • 在翻转完链表后可以不进行最后的翻转回初始链表操作,对结果无影响,主要是为了保证链表不变

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

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

相关文章

护眼台灯拒交智商税!明基/SUKER书客/米家三款热门护眼台灯深度测评

Hello我是装修研究爱好者,最近后台收到多位家长们咨询,让推荐一款儿童护眼台灯 要求灯光质量和光源稳定,光线舒适护眼效果好的台灯,为此我开始整理儿童护眼台灯攻略 选护眼灯时首先必须关注与护眼相关的指标,其次在考…

打造高效便利的同城跑腿外卖小程序

随着移动互联网的发展,人们的生活方式发生了翻天覆地的变化。外卖行业作为其中的一部分,正日益蓬勃发展。为了满足用户对便利的需求,我们可以开发一个名为“同城跑腿外卖小程序”的应用,让用户能够轻松地下单外卖、送货上门以及处…

python编辑器推荐及配置

vscode首推,(个人喜好) 安装Python解释器 打开Python官网 https://www.python.org/ 在 Downloads 下面选择自己的对应系统,本文以 Windows 为例 下载完成后解压,双击 .exe 文件开始安装 注意勾选下面选项,将其 python.exe 添加到环境变量…

OA项目之会议通知(查询是否参会反馈详情)

目录 会议查询 是否参会 反馈详情 讲解思路 会议通知SQL语句分析 反馈详情SQL语句分析 后台代码编写 前端代码编写 效果预览 会议查询 MeetingFeedBack.java package com.zking.oa.model;import org.lisen.mvc.util.AutoIncrement; import org.lisen.mvc.util.…

Ubuntu入门04——目录与文件

目录 1.显示当前工作目录 2.更改目录 3.创建工作目录 4.删除工作目录 5.移动文件或者文件夹 6.文件夹and文件查看命令 7. 回到根目录,回到上一级 8.删除工作目录 9.查看目录和文件 10.以树状图列出目录内容 11.文件查找 12.在数据库中查找文件或目录 1…

从零开始学习数据服务API的最佳指南

随着互联网的快速发展,数据已经成为企业和个人的重要资产。为了更好地利用这些数据,数据服务API(Data Service API)应运而生。本文将为您介绍如何从零开始学习数据服务API的最佳指南,并推荐一款优秀的产品FDL&#xff…

[C/C++]内存管理,对内存进行操作

目录 一.内存结构 二.内存拷贝函数 三.栈空间与堆空间 四.变量的四种存储类型 五.函数返回值使用指针 六.常见错误总结 🎈个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C&…

如何让Midjourney角色保持一致的5个核心技巧

hi,同学们,我是赤辰,本期是赤辰第2期AI教程或推荐实用AI工具,文章底部准备了粉丝福利,看完可以领取! 今天给大家介绍Midjourney5个控制AI绘画角色一致性的技巧。 近期整理了学员在使用Midjourney生图时遇…

KVM中的四种简单网络模型

KVM中的四种简单网络模型,分别如下: 1、隔离模型(QEMU内置的用户模式网络(user mode networking)):虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信&…

3D数字孪生技术应用到河道治理的整体方案

无论是城市还是农村的污水处理厂,在建设完毕并稳定运行以后,日常的巡检是最重要的现场管理环节。污水处理由于其自身工艺的特点,污水处理设备众多 ,进水水质变化大,处理流程长,这期间需要经常对设备的运行情…

java安全问题处理

一、客户端的计算不可信 1、服务端计算价格,如果不这么做的话,很可能会被黑客利用,商品总价被恶意修改为比较低的价格。 二、客户端提交的参数需要校验 1、误以为客户端的数据来源是服务端,客户端就不可能提交异常数据 2、对参数进…

『PyQt5-Qt Designer篇』| 08 Qt Designer中容器布局和绝对布局的使用

08 Qt Designer中容器布局和绝对布局的使用 1 容器布局1.1 设计容器布局1.2 保存文件并执行2 绝对布局2.1 设计绝对布局2.2 保存文件并执行1 容器布局 1.1 设计容器布局 先拖入一个容器Frame容器,然后拖入几个控件: 把拖入的控件拖入容器中: 选中容器,右键-布局-栅格布局:…

拥抱储能新时代!科士达闪耀EESA第二届中国国际储能展览会

2023年8月30日,EESA第二届中国国际储能展览会在苏州国际博览中心拉开帷幕,科士达以“零碳光储数能未来”为主题,亮相G3-20展台,多维度展现户用光储、工商业储能、大型储能等解决方案,彰显安全、高效、可靠的产品性能和…

Spring源码分析(八)CreateBean与DoCreateBean

写目录 一 CreateBean二 doCreateBean2.1 BeanWrapper2.2 缓存删除2.3 实例化Bean2.3.1 Supplier创建对象2.3.2 工厂创建对象2.3.3 构造器创建实例无参构造构造器依赖注入Setter的依赖注入autowireConstructor实例化instantiateBean 方法 2.4 Bean的前置处理 官网:H…

四川玖璨电子商务有限公司:如何给短视频做运营

短视频已经成为了人们日常生活中的娱乐方式之一。随着短视频平台的兴起,越来越多的人开始尝试在短视频上进行运营,而给短视频配上适合的音乐则是其中一项重要的工作。在本文中,我们将探讨如何给短视频做运营,特别是如何给短视频配…

Leecode76: 最小覆盖子串

这道题我的第一反应就是设置一个滑动窗口,因为之前遇到过类似的题目。 首先复习一下ACSII码的知识,ASCII码总共有128个,先是数字,然后是大写字符,最后才是小写字符。所以设置一个128大小的数组就可以解决这个问题。 le…

4年外包终上岸,我只能说这类公司能不去就不去...

我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司,一干就是4年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会,千万…

Room的基本使用

参考:jetpack之Room数据库 目录 引言一、基本使用1. 导入相关引用2. 建表Entity3. 数据库操作类Dao4. 数据库RoomDatabase5. 简单使用 二、ViewModel LiveData Room 的结合开发1. 建表Entity2. 数据库操作类Dao3. 数据库RoomDatabase4. 仓库Repository5. ViewMode…

什么时候用增量式PID,什么时候用位置式PID

PID控制器原理: 增量式PID: 位置式PID: 什么时候用位置式PID,什么时候用增量式PID: 在设计PID控制器时,应该考虑下什么时候用增量式,什么时候用位置式。需要看控制器输出u与控制目标之间的关系…

大数据(六):Pandas的基础应用详解(三)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教…