【LeetCode刷题笔记】LCR.27 回文链表

news2024/11/23 7:04:30

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
更多算法知识专栏:算法分析🔥
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述
LeetCode题解专栏:【LeetCode刷题笔记】


目录

  • 题目链接
  • 一、题目描述
  • 二、示例
  • 三、题目分析
  • 四、代码实现(C++)

题目链接

LCR 027. 回文链表 - 力扣(LeetCode)

一、题目描述

给定一个链表的 头节点 head **,**请判断其是否为回文链表。

如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。

二、示例

示例 1:

****

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

示例 2:

在这里插入图片描述

输入: head = [1,2]
输出: false

三、题目分析

判断回文链表:

先获取链表长度

在链表的中间位置断开,分为前后两个链表

通过两个指针指向两条链表的头节点,遍历两条链表不断进行判断,如果有不同的节点就不是回文链表

两条链表都遍历完毕即为回文链表

四、代码实现(C++)


  Definition for singly-linked list.
  struct ListNode {
      int val;
      ListNode next;
      ListNode()  val(0), next(nullptr) {}
      ListNode(int x)  val(x), next(nullptr) {}
      ListNode(int x, ListNode next)  val(x), next(next) {}
  };
 
class Solution {
public
    int getLen(ListNode head)
    {
        if(head == nullptr) return 0;
        int len = 0;
        ListNode temp = head;
        while(temp)
        {
            len++;
            temp = temp-next;
        }
        return len;
    }
    bool isPalindrome(ListNode head) {
        if(head == nullptr) return false;
        int len = getLen(head);
        ListNode slow = head;
        ListNode fast = head;
        for(int i=0;ilen2;i++)
        {
            fast = fast-next;
        }

        反转后半段链表
        ListNode backHead = reverse(fast);
        while(slow && backHead)
        {
            if(slow-val!=backHead-val)
            {
                return false;
            }
            slow = slow-next;
            backHead = backHead-next;
        }
        return true;

    }

    ListNode reverse(ListNode head)
    {
        ListNode p1 = nullptr;
        ListNode p2 = head;
        while(p2)
        {
            ListNode p3 = p2-next;
            p2-next = p1;
            p1 = p2;
            p2 = p3;
        }
        return p1;
    }
};

在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!
如果本文哪里有错误的地方还请大家多多指出(●'◡'●)

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

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

相关文章

平价蓝牙耳机哪款具有超高的性价比?四个评分超高的爆款推荐!

随着现代人对蓝牙耳机的需求越来越大&#xff0c;是不是每次看到琳琅满目的蓝牙耳机都眼花缭乱的&#xff0c;特别是预算有限还要追求音质与耐用的小伙伴&#xff0c;不知道平价蓝牙耳机哪款具有超高的性价比&#xff1f;别怕&#xff0c;今天我这个蓝牙耳机小达人就来给你们带…

简单猜谜小程序开发

了解小程序的结构 项目根目录 包含小程序的配置文件和其他资源。 页面目录 每个页面都有独立的目录&#xff0c;通常包含 .json、.wxml、.wxss、.js 文件&#xff1a; .json&#xff1a;页面配置文件&#xff0c;用于配置页面的窗口表现等。 .wxml&#xff1a;页面的布局文件…

ArcGIS for js 缓冲(vue项目)

示例&#xff1a; 一、页面布局 <template><div id"viewDiv"><div class"content"><el-button-group class"btnGroup"><el-button type"button" click"toolClick(point)" title"缓冲点&qu…

查询表信息时有一个数据为null相关解决

查询的时候varchar类型的username一直查不到为null,这个问题干了我好久 当时我以为是连接mysql数据库的时候没有在url后面添加添加指定字符的编码、解码格式的参数约束.然后经过分析发现 我创建的这个Account对象 直接上结果&#xff0c;问题出在了setUsername()方法上 错误…

ICM-20948芯片详解(7)

接前一篇文章&#xff1a;ICM-20948芯片详解&#xff08;6&#xff09; 五、组件概览及详述 再次给出ICM-20948芯片的内部结构框图&#xff1a; 2. 组件详述 &#xff08;9&#xff09;传感器数据寄存器 传感器数据寄存器包含最新的陀螺仪、加速计、辅助传感器和温度测量数据…

Python获取Excel内容

Python获取Excel内容 目录 Python获取Excel内容1.读取Excel并登陆2.下载Excel中图片 数据存储到列表3.上传到接口 需求&#xff1a;获取xlsx files目录下的所有Excel信息&#xff0c;并将数据打包成字典格式上传到接口 示例数据&#xff1a; 1.读取Excel并登陆 import os impo…

只渲染阴影(blender的cycle渲染)

点击物体属性&#xff0c;visibility&#xff0c;mask的阴影收集器 shadow catcher 点出蒙版层 新建collection收集集合&#xff0c;点击蒙版让物体消失并挖洞&#xff0c;

我命由我不由天:我的计算机教师中级岗之旅

在计算机行业的洪流中&#xff0c;作为一名20年计算机专业毕业的博主&#xff0c;我深知这几年就业的坎坷与辉煌。今天&#xff0c;我想与大家分享我的故事&#xff0c;一段关于梦想、挑战与坚持的计算机教师中级岗之旅。希望我的经历能为大家提供一个发展方向&#xff0c;在计…

群晖第五篇-docker部署自动化程序并设置推送

因网络政策调整&#xff0c;我们今后在使用docker的时候会比较繁琐。。。 1.打开Container Manager配置docker源&#xff0c;在右侧注册表镜像URL中填入自己找到的可用的docker镜像地址&#xff0c;然后点击应用。 2.在注册表页面中搜索"qd"&#xff0c;下载第一个镜…

java 位运算符

java位运算符 位于算符符号解释&按位与 当两位同为1时返回1|按位或,只要有一位为1即返回1~按位非,将操作数每个位(包括符号位,全部取反)^按位异或 两位相同时返回0,不相同时返回1<<左移运算符>>右移运算符 符号的介绍: &(与) -> 有假则假|(或) ->…

ctfhub eval执行

url http://challenge-1e9b95e5c3c2862c.sandbox.ctfhub.com:10800/ 源码 <?php if (isset($_REQUEST[cmd])) {eval($_REQUEST["cmd"]); } else {highlight_file(__FILE__); } ?> 首先&#xff0c;isset($_REQUEST[cmd]) 用于检查是否通过 $_REQUEST &am…

连接其他主机上的redis连接不上`telnet: Unable to connect to remote host: Connection refused`

telnet: Unable to connect to remote host: Connection refused 这个错误通常表示目标主机&#xff08;192.168.8.29&#xff09;上的服务&#xff08;6379端口&#xff09;没有运行&#xff0c;或者主机的防火墙/网络设置阻止了连接。 你可以尝试以下步骤来解决问题&#xf…

计算机组成原理核心概念-问题理解

目录 1.怎么理解计算机组成原理中存储器、控制器、运算器、输入输出设备之间的协作关系和工作流程 2.比、比特等类似几种表示信息存储的单位具体换算 3.介绍计算机的五大功能-数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能 4.计算机的工作过程/指令…

OED下载助手地址

ODE v0.8.9 官方版 (自窝挖坑多功能生态应用) | 克隆窝ODE易称"窝的"&#xff0c;是窝头将以多功能生态为主扩展开发的应用&#xff0c;会随时间发展慢慢堆积些有的没的功能&#xff0c;主要用于自窝学习&#xff0c;也希望能帮到大家。 下载地址&#xff1a; 克隆窝…

Java基础:线程池拒绝策略详解

目录 线程池拒绝策略概述1. AbortPolicy&#xff08;默认策略&#xff09;2. CallerRunsPolicy3. DiscardPolicy4. DiscardOldestPolicy5. 自定义拒绝策略 在Java多线程编程中&#xff0c;线程池&#xff08;ThreadPool&#xff09;是一种重要的并发工具&#xff0c;它允许我们…

代码随想录 day 32 动态规划

第九章 动态规划part01 今天正式开始动态规划&#xff01; 理论基础 无论大家之前对动态规划学到什么程度&#xff0c;一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目&#xff0c;看我讲的理论基础&#xff0c;会有感觉 是不是简单题想复杂了&#xff1f; …

0208-场景状态模式的UML图

一、设置状态 二、Uml类图

白话Java - 守护线程

全文详见个人独立博客&#xff1a;白话Java - 守护线程 白话Java - 守护线程关于”白话”, 偶然想到的词。目的就是用简洁&#xff0c;明快的语言来告诉您&#xff0c;我所知道的一切。 Java中的线程分两类&#xff0c;用户线程和守护线程。 Thread commonThread new Thread(…

尚硅谷谷粒商城项目笔记——七、安装rabbitMQ【电脑CPU:AMD】

七、安装rabbitMQ 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 [!NOTE] 下载RabbitMQ和Erlang的安装…

最新!2024年—华为认证HCIP考证流程

HCIP HCIP&#xff08;Huawei Certified ICT Professional 华为认证ICT高级工程师&#xff09;是华为职业认证中用于标识个人能力在某一技术领域达到高级工程师级别的证明&#xff0c;表示通过认证的人员具有丰富的ICT知识和实践能力。 HCIP方向 HCIP认证条件 无&#xff0…