leetcode234. 回文链表

news2025/1/9 5:49:51

题目

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

示例 1:

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

示例 2:

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

提示:

  • 链表中节点数目在范围[1, 105] 内
  • 0 <= Node.val <= 9

 方法一

思路:

将链表转为数组,然后双指针判断即可。

代码

class Solution {
public:
    bool isPalindrome(ListNode* head) {
        vector<int> vt; // 栈存放数组
        while(head){    // 链表 -> 栈
            vt.push_back(head->val);
            head = head->next;
        }
        // 定义双指针来对数组进行回文判断
        int left = 0, right = vt.size()-1;
        while(left < right){
            if(vt[left++] != vt[right--]){
                return false;
            }
        }
        return true;
    }
};

learn

这里因数组大小不好定义,所以可以使用 栈vector

方法二

反转链表,同时遍历,若不同,则返回false。

不知道为何这个方法总是返回false

 ListNode* reverseList(ListNode* head) {
        ListNode* prev = nullptr;
        ListNode* cur = head;
        ListNode* next;
        while(cur){
            next = cur->next;   // cur的后面结点
            cur->next = prev;   // cur的前面结点
            prev = cur;
            cur = next;            
        }
        return prev;
    }
class Solution {    
public:
    bool isPalindrome(ListNode* head) {
        ListNode* reverse = reverseList(head);
        while(reverse && head){
            if(reverse->val != head->val){
                return false;
            }
            reverse = reverse->next;
            head = head->next;
        }
        return true;
    }
};

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

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

相关文章

西米支付:到底什么是NFT(数字藏品支付通道)(NFT支付通道)

NFT到底指的是什么呢&#xff1f; 数字藏品的实际意义在于它们打破了传统艺术品的物质形态束缚。数字藏品可以通过虚拟现实和区块链技术进行创作、展示和交易。它们不仅可以满足人们对艺术品的审美需求&#xff0c;还可以成为一种投资和资产保值增值的方式。数字藏品的实际意义…

线控底盘新玩家凶猛!这家企业的ONE-BOX产品正式量产下线

高工智能汽车获悉&#xff0c;12月27日&#xff0c;威肯西科技宣布旗下ONE-BOX线控制动产品--液压解耦制动系统HDBS实现量产下线。该产品将与多个汽车品牌签署量产及定点协议&#xff0c;预计年产量达到60万套。 据了解&#xff0c;作为耀宁科技集团的一级子公司&#xff0c;威…

Javascript 下载方法分享

一、引言 JavaScript是一种广泛使用的编程语言&#xff0c;用于增强网页交互性和动态功能。然而&#xff0c;有时我们需要将JavaScript代码下载并部署到本地服务器或离线环境中。本文将分享一些常用的JavaScript下载方法。 二、直接下载JavaScript文件 手动下载&#xff1a;…

机器学习-决策树

1、什么是决策树&#xff1f; 一种描述概念空间的有效的归纳推理办法。基于决策树的学习方法可以进行不相关的多概念学习&#xff0c;具有简单快捷的优势&#xff0c;已经在各个领域取得广泛应用。 决策树是一种树型结构&#xff0c;其中每个内部结点表示在一个属性上的测试&a…

徐州数字孪生元宇宙赋能工业智能制造,助力传统制造业数字化转型

徐州数字孪生元宇宙赋能工业智能制造&#xff0c;助力传统制造业数字化转型。在徐州市制造业企业数字化转型的过程中&#xff0c;数字孪生技术的应用已经取得了显著成效。一方面&#xff0c;企业的生产效率得到了显著提高&#xff0c;产品质量也得到了有效保障。另一方面&#…

项目管理中,怎么进行项目过程管理?

项目经理在项目管理中会遇到许多问题&#xff0c;其中最令人头痛的莫过于项目计划执行不到位&#xff0c;进度难以跟踪&#xff0c;项目延期严重。这些问题导致项目计划看似存在&#xff0c;但实际上与无计划相差无几。 对于项目团队内部&#xff0c;项目经理常常抱怨团队成员…

Java后端sql编写

Java后端sql编写 注意事项二级目录三级目录 注意事项 在后端编写sql&#xff0c;不要直接编写sql语句进行查询 比如直接在service实现类中写下图这种语句 二级目录 三级目录

thinkphp 命令行执行

1 php 1 which php 查看命令来源 2 ll /usr/bin/php 软连接&#xff0c;来源是php的安装文件的可执行文件php 3 $PATH的作用, 显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成如下&#xff0c; echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/…

贴纸SDK多少钱?

贴纸已经成为了表达自我、分享情感的重要工具,美摄科技&#xff0c;作为一家领先的技术解决方案提供商&#xff0c;致力于为企业提供卓越的贴纸SDK&#xff08;软件开发工具包&#xff09;技术解决方案。本文将深入探讨美摄科技贴纸SDK的价值、优势以及如何为企业创造价值。 一…

K8S----YAML

kubernetes中资源可以使用YAML描述&#xff08;如果您对YAML格式不了解&#xff0c;可以参考YAML语法&#xff09;&#xff0c;也可以使用JSON。其内容可以分为如下四个部分&#xff1a; typeMeta&#xff1a;对象类型的元信息&#xff0c;声明对象使用哪个API版本&#xff0c…

linux云服务器 如何将数据盘挂载到系统盘上面?

先认识认识下面几个常用命令 lsblk 命令&#xff1a;查看设备列表&#xff0c;也就是能看到系统盘和数据盘一般为&#xff1a;vda&#xff08;系统盘&#xff09;、vdb&#xff08;数据盘&#xff09;等等 lsblk"ls" 是 "list" 的缩写&#xff1a; lsblk…

❤ uniapp 开发小程序环境搭建和使用零(0 开篇-介绍和运行)

♥ uniapp 环境搭建 1、简单介绍 拿HbuildX写代码开发&#xff0c;然后把程序运行到微信开发者工具 开发uniapp小程序需要用到的两个工具 HbuildX [开发小程序使用] https://www.dcloud.io/hbuilderx.html 微信开发者工具 HbuildX开发的小程序运行到微信开发者工具 https://de…

cesium设置近地天空盒 天空会倾斜

上篇文章讲解了如何设置近地天空盒&#xff0c;效果出来了还是发现天空是斜的 https://blog.csdn.net/m0_63701303/article/details/135618244 效果&#xff1a; 这里需要修改Cesium.skyBox的代码&#xff0c;代码如下直接全部复制组件内调用即可 skybox_nearground.js&…

100个实战项目——在树莓派4B+Ubuntu20.04桌面版配置下运行智能小车(一)

主机SSH远程链接从机 查看python版本 python 我的是python3.8 所以我需要安装pip3 sudo apt install python3-pip 接着安装程序需要的引脚库 sudo pip3 install RPi.GPIO 注意必须要有sudo&#xff0c;因为我是远程遥控的树莓派&#xff0c;没有权限运行程序&#xff0…

GaussDB数据库中的MERGE INTO介绍

一、前言 二、GaussDB MERGE INTO 语句的原理概述 1、MERGE INTO 语句原理 2、MERGE INTO 的语法 3、语法解释 三、GaussDB MERGE INTO 语句的应用场景 四、GaussDB MERGE INTO 语句的示例 1、示例场景举例 2、示例实现过程 1&#xff09;创建两个实验表&#xff0c;并…

不同场景中,低代码平台如何进行表单校验?应对复杂业务数据校验

在当今的数字化时代&#xff0c;表单已经成为应用程序与用户交互的重要界面。而表单校验则是确保数据准确性和完整性的关键环节。本文以JVS低代码为例&#xff0c;详细介绍如何在低代码平台上进行表单校验的配置&#xff0c;以确保不同情况下的数据验证需求得到满足。我们将探讨…

Oracle-java下载、开源/商业许可证(收费、免费说明)、版本发布日志

Oracle-java下载、开源/商业许可证&#xff08;收费、免费说明&#xff09;、版本发布日志 下载开源/商业许可证&#xff08;收费、免费说明&#xff09;java8版本发布日志以上是一般情况&#xff0c;具体的以官网发布信息为准 下载 下载地址&#xff1a;https://www.oracle.c…

图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要使用数据标注工具 Labelme 对自行车&#xff08;bike&#xff09;和摩托车&#xff08;motorcycle&#xff09;这两种训练样本进行标注&#xff0c;使用预训练模型 VGG16 作为卷积基&#xff0c;并在其之上添加了全连接…

wins安装paddle框架

一、安装 https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/pip/windows-pip.html 装包&#xff08;python 的版本是否满足要求&#xff1a; 3.8/3.9/3.10/3.11/3.12&#xff0c; pip 版本为 20.2.2 或更高版本 &#xff09; CPU 版:…

易企秀H5场景秀源码系统 :帮你轻松制作各种邀请函、活动通知函,带完整的安装代码包以及搭建教程

易企秀是一家专注于企业数字化场景解决方案的公司&#xff0c;自成立以来&#xff0c;一直致力于为企业提供高效、便捷的H5场景制作服务。随着市场需求的变化&#xff0c;易企秀发现许多企业需要源码级别的H5场景制作工具&#xff0c;以便更好地满足个性化需求。因此&#xff0…