链表的回文结构 C语言

链表的回文结构_牛客题霸_牛客网 (nowcoder.com)   (点击前面链接即可查看题目)

reverseList函数请参考:反转链表 - 力扣(LeetCode)C语言-CSDN博客

middleNode函数请参考:链表的中间结点 - 力扣(LeetCode)C语言-CSDN博客

链表:1->2->3->2->1

        先找到中间结点, 也就是3,然后反转3->2->1,但是要注意标红的2仍旧指向3,

所以链表变成了1->2->3<-2<-1,就成了这样.

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
class PalindromeList {public:struct ListNode* reverseList(struct ListNode* head) {if (head == NULL)return NULL;else {struct ListNode* oldhead = head;struct ListNode* newhead = NULL;while (oldhead) {struct ListNode* nextnode = oldhead->next;oldhead->next = newhead;newhead = oldhead;//迭代oldhead = nextnode;}return newhead;}}struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow = head;struct ListNode* fast = head;//空指针if (NULL == head) {return NULL;}//一个结点else if (NULL == head->next) {return head;}//大于等于2个结点else {while (fast) {if (NULL == fast->next) {return slow;}slow = slow->next;fast = fast->next->next;}return slow;}}bool chkPalindrome(ListNode* A) {// write code hereListNode* mid = middleNode(A);ListNode* rmid = reverseList(mid);while(rmid){if(rmid->val != A->val){return false;}else{rmid = rmid->next;A = A->next; }}return true;}
};

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

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

相关文章

SpringCloud与Eureka、Ribbon、Hystrix、Fegin、Gateway

SpringCloud 一、概念二、作用(优点)三、缺点四、核心组件1、网关2、注册中心3、负载均衡4、远程调用5、熔断器 一、概念 微服务框架的一站式解决方案&#xff0c;集成多个Netflix公司开发组件&#xff0c;如Hystrix&#xff0c;Eureka、Zuul等。二、作用(优点) 1.服务内部关…

Web基础、apache和nginx的知识及服务搭建

一、Web基础概念和常识 Web&#xff1a;为用户提供的⼀种在互联网上浏览信息的服务&#xff0c;Web 服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联网服务&#xff0c;这些服务包括信息浏览服务&#xff0c;以及各种交互式服务&#xff0c;包括聊…

Python IO多路复用select,poll,epoll区别

Python IO多路复用select,poll,epoll区别 在Python中,IO多路复用是一种有效的技术,允许一个进程管理多个IO操作,提高IO效率。Python提供了几种不同的IO多路复用机制,主要有select,poll和epoll,它们在不同的操作系统上有不同的实现,但都用于相似的目的。下面是它们的主…

Windows 11 实现移动热点自启动

原文链接&#xff1a;https://blog.iyatt.com/?p16784 背景 公司的 WiFi 用起来很卡&#xff0c;但是电脑有线使用网络又是正常的&#xff0c;另外我用的那台台式机是有无线网卡的&#xff0c;平时就是用电脑开热点给手机用&#xff0c;但是每次开机都要自己手动启动就麻烦&…

【云原生】Kubernetes中crictl的详细用法教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

心动小站Ⅸ--Nvidia一种夸张的增长

当有灭绝级别的威胁时&#xff0c;你希望它如何出现在头版&#xff1f;华尔街日报或 CNN 的新闻中说它即将发生&#xff1f; 大多数新闻都是在灾难发生后才传到你耳中的。谈到人工智能&#xff0c;我们已经收到了很多警告&#xff0c;这些警告来自各个领域的专家&#xff0c;比…

下面关于枚举的描述正确的一项是?

A. 枚举中定义的每一个枚举项其类型都是String&#xff1b; B. 在Java中可以直接继承java.util.Enum类实现枚举类的定义&#xff1b; C. 利用枚举类中的values()方法可以取得全部的枚举项&#xff1b; D. 枚举中定义的构造方法只能够使用private权限声明&#xff1b; 答案选择…

鸿蒙(API 12 Beta2版)NDK开发【Node-API简介】

Node-API简介 场景介绍 HarmonyOS Node-API是基于Node.js 8.x LTS的[Node-API]规范扩展开发的机制&#xff0c;为开发者提供了ArkTS/JS与C/C模块之间的交互能力。它提供了一组稳定的、跨平台的API&#xff0c;可以在不同的操作系统上使用。 本文中如无特别说明&#xff0c;后…

鸿蒙配置Version版本号,并获取其值

app.json5中配置版本号&#xff1a; 获取版本号&#xff1a; bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo) > {let versionName bundleInfo.versionName; //应用版本号}).catch((error: BusinessE…

redis面试(二)List链表数据

list 列表 我们总是说List为列表&#xff0c;其实在真正的数据结构来说&#xff0c;redis是自己基于c语言来实现的双向链表数据结构&#xff0c;主要的逻辑就是每个节点都可以指向下一个节点&#xff0c;这个结构就属于链表数组结构。 每个节点中的属性如下&#xff1a; type…

「数组」C++STL库vector(动态数组|向量)全部函数介绍

概述 vector 是一种C标准模板库STL中定义的一种序列容器&#xff0c;它允许你在运行时动态地插入和删除元素。 vector 是基于数组的数据结构&#xff0c;但它可以自动管理内存&#xff0c;这意味着你可以添加任意多的元素在其中&#xff0c;并且你不需要手动分配和释放内存。…

CTF Web SQL注入 10000字详解

这里写目录标题 涉及的数据库知识unionorder bydatabase()information_schemalimit--空格注释replaceinto outfilelikeGROUP BYHAVINGGROUP BY、HAVING、WHERE之间的关系regexp 原理信息收集操作系统数据库判断注入点注入点类型POST注入数字型注入字符型注入搜索型注入Insert/u…

数学中的连分式、无穷连根式、平方根

连分式 连分式&#xff08;continued fraction&#xff09;由和与倒数的多层嵌套构成&#xff0c;可以是有限的&#xff0c;也可以是无限的。 表达式&#xff1a;或 import mathdef fraction_to_continued_fraction(numerator, denominator, max_terms):"""计算…

【无标题】web+http协议+nginx搭建+nginx反向代理(环境准备)

一&#xff0e;Web 为用户提供互联网上浏览信息的服务&#xff0c;web服务是动态的&#xff0c;可交互的。 1.安装httpd yum -y install httpd 2.启动 systemctl start httpd 3.关闭防火墙 systemctl stop firewalld [rootrs html]# echo "我手机号是" > …

zeppline 连接flink 1.17报错

Caused by: java.io.IOException: More than 1 flink scala jar files: /BigData/run/zeppelin/interpreter/flink/zeppelin-flink-0.11.1-2.12.jar,/BigData/run/zeppelin/interpreter/flink/._zeppelin-flink-0.11.1-2.12.jar 解决方案&#xff1a; 重新编译zepplin代码&…

如何在 cPanel 上更改主共享 IP 地址

cPanel & WHM的主共享IP地址是服务器上新建虚拟主机账户时的默认IP地址。这使得主机服务商能够轻松创建新账户&#xff0c;并简化原本复杂且耗时的域名和网络服务器配置过程。但如果你想更改cPanel服务器的主共享IP地址&#xff0c;该怎么办呢&#xff1f; 本文将概述更改服…

PHP经销商订货管理系统小程序源码

经销商订货管理系统&#xff1a;重塑供应链效率的利器 &#x1f680; 开篇&#xff1a;解锁供应链管理的新纪元 在竞争激烈的商业环境中&#xff0c;经销商作为供应链的关键一环&#xff0c;其订货效率直接影响到整个供应链的流畅度和响应速度。传统的订货方式往往繁琐、易出…

Kylin与Spark:大数据技术集成的深度解析

引言 在大数据时代&#xff0c;企业面临着海量数据的处理和分析需求。Kylin 和 Spark 作为两个重要的大数据技术&#xff0c;各自在数据处理领域有着独特的优势。Kylin 是一个开源的分布式分析引擎&#xff0c;专为大规模数据集的 OLAP&#xff08;在线分析处理&#xff09;查…

精品PPT | 云原生大数据平台构建及落地实践.pptx

1、监控和可观测性的关系及渊源 2、当前阶段落地可观测性的挑战在哪里 3、落地好一个可观测系统的三大要素 4、面向故障处理过程的可观测性体系建设案例 5、思考&#xff1a;人工智能2.0对可观测性技术和产品演进的影响