【leetcode】回文链表-25-3

news2024/11/13 13:53:06

在这里插入图片描述
方法:快慢指针+递归+遍历

/**
 * 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 ListLength=0;
    ListNode* reverseList(ListNode* head){
        if(!head||!head->next){
            // if(head){
            //     ListLength+=1;
            // }
            return head;
        }
        ListNode* T=reverseList(head->next);
        head->next->next=head;
        head->next=nullptr;
        // ListLength+=1;
        return T;
    }
    bool isPalindrome(ListNode* head) {
        if(!head||!head->next){
            return true;
        }
        ListNode* secondStart=searchHalfStart(head);
        ListNode* b=reverseList(secondStart->next);
        ListNode* a=head;
        int eqIndex=0;
        // while(b){
        //     std::cout<<"<<<"<<b->val<<std::endl;
        //     // a=a->next;
        //     b=b->next;
        // }
        bool res=true;
        while(res && a && b){
            // std::cout<<eqIndex<<","<<ListLength<<std::endl;
            // std::cout<<a->val<<"---"<<b->val<<std::endl;
            if(a->val == b->val){
                // eqIndex+=1;
                res=true;
                a=a->next;
                b=b->next;
                // std::cout<<"222"<<std::endl;
            }
            else{
                res=false;
                break;
            }
        }
        reverseList(secondStart);
        // std::cout<<eqIndex<<","<<ListLength<<std::endl;
        return res;

    }

    ListNode* searchHalfStart(ListNode* head){
        ListNode* fast=head;
        ListNode* slow=head;

        while(fast->next!=nullptr && fast->next->next!=nullptr){
            fast=fast->next->next;
            slow=slow->next;
        }
        return slow;
    }
};

在这里插入图片描述
方法:递归回退策略

/**
 * 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:
    ListNode* frontPoint;
    bool recurveCheck(ListNode* head){
        if(!head){
            return true;
        }
        else{
            bool res=recurveCheck(head->next);
            if(res && head->val==frontPoint->val){
                frontPoint=frontPoint->next;
                return res;
            }
            else{
                return false;
            }
        }
    }

    bool isPalindrome(ListNode* head) {
        if(!head||!head->next){
            return true;
        }
        frontPoint = head;
        bool res = recurveCheck(head);
        return res;

    }
};

在这里插入图片描述
方法:容器数组+遍历

/**
 * 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:

    bool isPalindrome(ListNode* head) {
        vector<int> vec;
        ListNode* temp=head;
        while(temp!=nullptr){
            vec.emplace_back(temp->val);
            temp=temp->next;
        }
        bool res=true;
        int i=0,j=vec.size()-1;
        while(i<j){
            if(vec.at(i)==vec.at(j)){
                i++;
                j--;
            }
            else{
                res=false;
                break;
            }
        }
        return res;

    }
};

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

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

相关文章

超吸睛!用AI绘画做沙雕图文号,有趣又解压!轻松吸粉变现!

大家好&#xff0c;我是画画的小强 小强可谓是小某书资深用户&#xff0c;最近突然刷到了某篇主打沙雕日常文案的 AI手绘插画图文号&#xff0c;不仅篇篇笔记上千点赞量&#xff0c;重点&#xff01;这类图文号植入的均是报价贼高的软广&#xff0c;我的老天鹅&#xff01;一搜…

基于vue框架的爱购电商平台256tr(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,商家,商品分类,商品信息 开题报告内容 基于Vue框架的爱购电商平台 开题报告 一、研究背景与意义 随着互联网技术的迅猛发展和消费者购物习惯的深刻变革&#xff0c;电子商务已成为推动全球经济增长的重要力量。然而&#xff0c;…

分销商城小程序系统渠道拓展

线上卖货渠道很多&#xff0c;想要不断提高营收和新客获取&#xff0c;除了自己和工具本身努力外&#xff0c;还需要其他人的帮助来提高商城店铺的整体销量。 搭建saas商城系统网站/小程序&#xff0c;后台上货&#xff0c;设置支付、配送、营销、精美模板商城装修等内容&…

网络研讨会 | Unlock your SAP Data:用新一代 SAP 集成方案加速释放企业核心数据价值

伴随着业务的快速发展&#xff0c;企业对 SAP 系统的使用逐渐深化。为了更好释放数据价值&#xff0c;有效驱动商业决策&#xff0c;将 SAP 数据与其他数据系统集成打通&#xff0c;已成为企业数字化发展的必然趋势。 然而&#xff0c;由于 SAP 系统的独特性&#xff0c;企业想…

Lesson 59 Is that all?

Lesson 59 Is that all? 词汇 envelope n. 信封 复数&#xff1a;envelopes 例句&#xff1a;在红色信封里有一封书信。 There is a letter in the red envelope. writing paper n. 信纸【不可数】 构成&#xff1a;write v. 写 writer n. 作家    相关&#xff1a;hand…

SQL SERVER 2008多表关联查询,关联条件用(*=、=*)无法使用,高版本数据库不兼容,报错“*=”附近有语法错误!

专业问题&#xff0c;已经习惯了先问AI 下图是百度AI的回复 下图是讯飞星火的回复 下面是SQL SERVER 2022数据库引擎&#xff0c;查询使用&#xff01; 报错&#xff1a;“*”附近有语法错误。 查询数据库版本语法 SELECT VERSION 得到数据库版本&#xff1a;SQL Server 202…

【CVE-2024-38077】修复Windows 远程桌面授权服务远程代码执行漏洞记录

官方漏洞指南&#xff1a;Security Update Guide - Microsoft Security Response Center 受影响版本&#xff1a; Windows Server 2012 R2 (Server Core installation) Windows Server 2012 R2 Windows Server 2012 (Server Core installation) Windows Server 2012 Windows …

AI时代来临,程序员歇业在家,如何利用AI来赚钱?

我没有团队&#xff0c;就一个人&#xff0c;能不能用AI来赚点小钱&#xff1f; 当然可以&#xff0c;单打独斗并非阻碍&#xff0c;AI技术完全可以助您拓展收入来源。接下来&#xff0c;我将为您详细介绍10种个体利用AI提升收入的有效途径。 首先&#xff0c;您可以通过以下…

PRVF-4037 : CRS is not installed on any of the nodes

描述&#xff1a;公司要求替换centos&#xff0c;重新安装ORACLE LINUX RAC的数据库做备库&#xff0c;到时候切换成主库&#xff0c;安装Linux7GRID 19C 11G Oracle&#xff0c;顺利安装grid 19c&#xff0c;安装11G数据库软件的时候检测报如题错误&#xff1a;**PRVF-4037 …

显卡刷坏BIOS黑屏怎么办_万能救砖恢复方法来了!

电脑显卡刷bios黑屏不开机无显示无信号&#xff0c;是因为显卡vbios刷错文件了&#xff0c;找到正确的显卡BIOS文件刷回去就行了。但是黑屏进不去系统如何刷显卡BIOS呢。给大家推荐个万能刷显卡BIOS工具&#xff0c;名字是《离线刷bios设备》&#xff0c;用免拆夹子直接连接显卡…

49-DRC的设置及检查

1. DRC设置入口 2.如下设置 3.运行DRC

IDEA 解决创建新项目Maven配置变化问题

我们发现&#xff0c;每次创建新项目&#xff0c;配置好的maven路径就变了&#xff0c;总是恢复成IDEA自带的maven配置&#xff0c;我们想永久使用我们的Maven配置&#xff0c;该如何修改呢&#xff1f; 配置好要重启IDEA&#xff01;&#xff01;&#xff01;

kubernetes k8s Daemonset 控制器 原理 讲解 配置

目录 1 DaemonSet控制器&#xff1a;概念、原理解读 1.1 DaemonSet概述 1.2 DaemonSet工作原理&#xff1a;如何管理Pod&#xff1f; 1.3 Daemonset典型的应用场景 1.4 DaemonSet 与 Deployment 的区别Deployment 部署的副本 Pod 会分布在各个 Node 上&#xff0c;每个…

Docker安全与资源

一、cgroup资源配置方法 1.cgroup概念 cgroup&#xff08;control group控制族群&#xff09; &#xff08;1&#xff09;什么是cgroup 和namespace类似&#xff0c;也是将进程进程分组&#xff0c;但是目的与namespace不一样&#xff0c;namespace是为了隔离进程组之前的资…

制作网站的流程有哪些

制作一个网站需要经历一系列的流程&#xff0c;下面将详细介绍制作网站的主要流程。 1. 确立目标和需求分析&#xff1a;在开始设计网站之前&#xff0c;首先要明确网站的目标和需求。这包括确定网站的用途&#xff0c;目标受众&#xff0c;所需功能等。这个阶段的目的是为了确…

八股之数据库

一、Mysql 基础知识 1.为什么不推荐使用外键与级联&#xff1f; 增加了复杂性&#xff1a; a. 每次做 DELETE 或者 UPDATE 都必须考虑外键约束&#xff0c;会导致开发的时候很痛苦, 测试数据极为不方便; b. 外键的主从关系是定的&#xff0c;假如那天需求有变化&#xff0c;数…

深度解析:AI大模型高效推理技术全览,掌握顶尖性能优化策略!

1 介绍 大型语言模型在人工智能领域中具有巨大的潜力 &#xff0c;但推理过程中的禁止记忆和计算预算阻碍了其部署。 为了应对这些挑战&#xff0c;提出了许多针对LLMs的专业压缩方法&#xff0c;包括剪枝、知识传递、量化、紧凑的架构设计以及动态网络等。这些方法有助于减少…

219页PDF || 大模型技术引领行业变革:2024大模型典型示范应用案例集(附案例集下载)

大家好&#xff0c;今天给大家分享一本《2024大模型典型示范应用案例集》我已将这本案例集打包好了&#xff0c;包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习&#xff0c;等录播视频免费分享出来&#xff0c;需要的小伙伴可以扫取。 引…

Nacos配置内容加密实现

一&#xff0c;背景 因为项目中安全检查的要求&#xff0c;需要将nacos配置的内容进行加密&#xff0c;所以需要实现将配置内容加密处理&#xff0c;这里引入nacos-aes-encryption-plugin插件来完成这一需求。 二&#xff0c;实现步骤 1, 重新编译nacos服务端 1.1 从githu…

海量数据处理商用短链接生成器平台 - 17

第五十八章 数据可视化ADS层-应用数据服务开发实战 第1集 数据可视化ADS层介绍和微服务整合ClickHouse项目 简介&#xff1a; 数据可视化ADS层介绍和微服务整合ClickHouse项目 数据分层 数据分层分层描述数据生成计算工具存储ODS原生数据&#xff0c;短链访问基本信息Sprin…