牛客,OR36 链表的回文结构,快慢指针和反转链表的实践

链表的回文结构_牛客题霸_牛客网 (nowcoder.com)

还是比较简单的,主要分为三个步骤,两种需掌握的函数实现

目录

主要思路过程,1,找到中间结点,2,反转中间结点往后的结点,3,遍历比较

以下是代码:

每日一表情包:


由于单链表没法让指针往回走,所以,我们要让它能往回走,以好比较,

主要思路过程,1,找到中间结点,2,反转中间结点往后的结点,3,遍历比较

我们用到,查找链表中间结点的操作,和反转链表的操作,

LeetCode:206反转链表-CSDN博客

LeetCode:876.链表的中间结点-CSDN博客

以下是代码:

博主C++还没学,对于这个题来说,C++比C语言只是多了最外面的那一圈,不影响!

(由于C++包含C语言,所以本篇其实还是用C实现的,因为这个题,没有C实现的选项)

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
class PalindromeList {
public://找到单链表的中间结点并返回struct ListNode* CheckMid(ListNode* A){struct ListNode*  pslow = A , *pfast = A;while(pfast && pfast->next){pslow = pslow->next;pfast = pfast->next->next;}return pslow;}//逆转单链表/反转单链表,返回逆转后的头结点指针struct ListNode* ReverseListNode(ListNode* ps){struct ListNode* ptail = NULL;while(ps){struct ListNode* pnext = ps->next;ps->next = ptail;ptail = ps;ps = pnext;}return ptail;}bool chkPalindrome(ListNode* A) {// write code here//assert(A);//先用快慢指针找到中间节点struct ListNode* pMid = CheckMid(A);//再逆转链表后半段,//此时后半段链表尾指向的是NULL,前半段指向的是后半段的尾struct ListNode* ptail = ReverseListNode(pMid);//逆转后的链表头结点//然后循环遍历判断while(ptail){if(ptail->val != A->val){return false;}ptail = ptail->next;A = A->next;}return true;}
};

每日一表情包:

阿巴阿巴,带那个赞再走吧!求求啦! 

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

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

相关文章

双非本科准备秋招(13.1)—— 力扣 栈、队列与堆

1、103. 二叉树的锯齿形层序遍历 昨天做的二叉树的层序遍历,把代码直接拿过来。 这个题要求的是一个Z型遍历,如下图。 用一个变量f记录正反顺序,然后使用LinkedList记录答案,下图可以看到LinkedList继承了Deque,所以…

Python算法题集_除自身以外数组的乘积

Python算法题集_除自身以外数组的乘积 题239:除自身以外数组的乘积1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【暴力求解】2) 改进版一【字典改进乘积计算】3) 改进版二【字典改进乘积计算预计算数字乘积】4) 改进版三【前缀乘积…

第二集《修道宗范》

请大家打开讲义第5页,我们讲到丙一、先修出离心。 身为一个有情众生,我们内心当中,有一个没办法改变的本性,我们就是希望生命能够离苦得乐,这是没办法改变的。换句话说,我们每一个人都喜欢安乐&#xff0c…

Java技术栈 —— Hadoop入门(二)实战

Java技术栈 —— Hadoop入门(二) 一、用MapReduce对统计单词个数1.1 项目流程1.2 可能遇到的问题1.3 代码勘误1.4 总结 一、用MapReduce对统计单词个数 1.1 项目流程 (1) 上传jar包。 (2) 上传words.txt文件。 (3) 用hadoop执行jar包的代码,…

【C++】 C++入门 — auto关键字

C入门 auto 关键字1 介绍2 使用细则3 注意事项 Thanks♪(・ω・)ノ谢谢阅读下一篇文章见!!! auto 关键字 1 介绍 编程时常常需要把表达式的值赋给变量,这就要求在声明变量时清楚地知道表达式的类…

指针的深入理解(四)

这节主要讨论sizeof和strlen的区别,以及一些理解题。 sizeof 求的是对象的大小,深入理解一点就是:这个对象,他一定有一块对应的内存空间。求的就是这一块内存空间。 strlen 只能用来求字符串, 求取的是字符串的长度。…

面试了字节大模型算法岗(实习),快被问哭了。。。。

最近技术群组织了一次算法面试讨论会,今天分享的是一位小伙子的痛苦面试经历,如果你想加入我们的讨论群,见文末。 本次分享的内容如下: 应聘岗位:字节大模型算法实习生 面试轮数:第一轮 整体面试感觉&…

python封装的.exe文件是如何在cmd中获取.xml路径的?

这段日子搞项目算法封装,愁死我。来回改了三遍,总算把相对路径、绝对路径,还有cmd给.exe传参的方式搞懂了。 主要是这个语句 workspace sys.argv[1] sys.argv[]的作用就是,在运行python文件的时候从外部输入参数往文件里面传递参数。 外部就…

CTF盲水印工具:Blind-WaterMark安装

工具下载地址:GitCode - 开发者的代码家园 下载完毕后,只留这些东西就行 接下来需要安装两个依赖: opencv、matplotlib 直接pip install安装的话,工具使用会报错 所以需要到网站里挑选适合的版本进行安装 下载地址&#xff1…

项目:博客

1. 运行环境: 主机 主机名 系统 服务 192.168.223.129 Server_Web Linux Web 192.168.48.131 Server-NFS-DNS Linux NFS/DNS 2. 基础配置 配置主机名,静态IP地址 开启防火墙并配置 部分开启SElinux并配置 服务器之间使用同ntp.aliyun.com进行…

详讲api网关之kong的基本概念及安装和使用(二)

consul的服务注册与发现 如果不知道consul的使用,可以点击上方链接,这是我写的关于consul的一篇文档。 upstreamconsul实现负载均衡 我们知道,配置upstream可以实现负载均衡,而consul实现了服务注册与发现,那么接下来…

leetcode209长度最小的子数组|滑动窗口算法详细讲解学习

滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。 分类:窗口有两类,一种是固定大小类的窗口,一类是大小动态变化的窗口。 简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作&…

DevEco Studio 保存自动格式化代码

目标:保存后自动格式化代码 单次快捷键:Ctrl Alt L 步骤一 步骤二

7.2、子集求和问题与背包密码系统

7.2、子集求和问题与背包密码系统 一、数学描述 1.1、第一种描述 20 世纪 70 年代末,默克尔和赫尔曼首次尝试将密码系统建立在一个 NP-完全问题上。他们使用了以下数学问题的一个版本,该问题是对经典knapsack问题的概括。 子集和问题 假设你有一个正…

【Midjourney】AI绘画案例(1)龙年吉祥神兽

说明: 1、文中图片版权均为Midjourney所有,请勿用作商业用途。 2、文中图片均经过 Upscale x 4 处理。 3、由于模型原因,某些图片存在暇玼。 1、吉祥神兽——天马(独角兽) 天马消灾星。 提示词 Prompt: Sky Unicor…

2023强网杯复现

强网先锋 SpeedUp 要求2的27次方的阶乘的逐位之和 在A244060 - OEIS 然后我们将4495662081进行sha256加密 就得到了flag flag{bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797} MISC easyfuzz 通过尝试输入字符串判断该程序对输入字符的验证规则为9…

Prometheus+grafana配置监控系统

使用docker compose安装 方便拓展, 配置信息都放在在 /docker/prometheus 目录下 1.目录结构如下 . ├── conf │ └── prometheus.yml ├── grafana_data ├── prometheus_data └── prometheus_grafana.yaml2.创建目录文件 mkdir /docker/prometheus &&am…

【unity小技巧】FPS简单的射击换挡瞄准动画控制

文章目录 射击动画控制换弹动画瞄准动画完结 射击动画控制 换弹动画 调用 瞄准动画 问题:瞄准时,但是动画会卡住,不会播放瞄准的待机动画 修改 调用 动画如果太快可以去修改播放速度 播放速度变慢了,可能导致切换待机动画也…

【PyQt】01-PyQt下载

文章目录 前言静态库 一、PyQt是什么?二、安装1.Windows环境下安装安装PyQt5Designer 2.Liunx环境下安装 总结 前言 拜吾师 PyQt5 快速入门 静态库 补充一点知识: Windows: .lib Linux: .a .so(动态库) 简单描述PyQt就是python调用C的Qt文…

《区块链简易速速上手小册》第4章:区块链与加密货币(2024 最新版)

文章目录 4.1 比特币与区块链4.1.1 比特币基础4.1.2 比特币交易的工作流程:4.1.3 拓展案例 1:闪电网络4.1.4 拓展案例 2:比特币ATM 4.2 其他主要加密货币4.2.1 加密货币的多样性4.2.2 以太坊的案例4.2.3 拓展案例 1:非同质化代币&…