C语言/数据结构——(链表的回文结构)

一.前言

今天在牛客网上刷到了一道链表题——链表的回文结构https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?,巧合的是它的解题思路恰好是我们一起分享过两道链表题的汇总。这两道题分别是反转链表和链表的中间节点。废话不多数,让我们直接进入今天的正文环节吧。

二.正文

1.1题目描述

1.2题目分析

对于这道题,我们的思路是先找到链表的中间节点,然后将中间节点及之后的链表进行逆置,这样就可以得到两个链表的头节点。并让这两个链表的元素依次比较大小,如果元素依次相同,则返回true,否者返回false。

就比如:1->2->2->1

对于反转链表和找到中间节点可以看我写的文章。下面是对应其链接:

反转链表:https://blog.csdn.net/yiqingaa/article/details/138376042?

查找中间节点:https://leetcode.cn/problems/middle-of-the-linked-list

1.3代码实现

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/typedef struct ListNode ListNode;
class PalindromeList {
public:
ListNode* middleNode(struct ListNode* head) 
{ListNode* slow;ListNode* fast;fast=slow=head;while((fast!=NULL)&&(fast->next!=NULL)){slow=slow->next;fast=fast->next->next;}return slow;
}
typedef struct ListNode ListNode;
ListNode* ReverseList( ListNode* head)
{
// if(head==NULL)//  return NULL;ListNode*pcur,*prev,*pnext;ListNode* phead=(ListNode*)malloc(sizeof(ListNode));phead->next=head;pcur=head;prev=phead;pnext=pcur->next;while(pcur!=NULL){pcur->next=prev;prev=pcur;pcur=pnext;if(pnext!=NULL)pnext=pnext->next;}head->next=NULL;free(phead);phead=NULL;return prev;
}bool chkPalindrome(ListNode* A) {// write code here
ListNode* mid=middleNode(A);
ListNode* remid= ReverseList(mid);
while(remid&&A)
{if(A->val!=remid->val)return false;else{A=A->next;remid=remid->next;}}
return true;} 
};

值得注意的是,以上代码是在牛客网上运行的。

三.结言

今天的题目就分享到这了,帅哥美女们,我们下次再见喽,拜拜~

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

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

相关文章

回炉重造java----单列集合(List,Set)

体系结构: 集合主要分为两种,单列集合collection和双列集合Map,区别在于单列集合一次插入一条数据,而双列的一次插入类似于key-value的形式 单列集合collection 注:红色的表示是接口,蓝色的是实现类 ①操作功能: 增加: add()&am…

Java中的maven的安装和配置

maven的作用 依赖管理 方便快捷的管理项目依赖的资源,避免版本冲突问题 统一项目管理 提供标准,统一的项目结构 项目构建 标准跨平台(Linux、windows、MacOS)的自动化项目构建方式 maven的安装和配置 在maven官网下载maven Ma…

嵌入式学习<2>:EXTI、ADC、NVIC和AFIO

嵌入式学习_part2 本部分笔记用于学习记录,笔记源头 >>b站江科大_STM32入门教程_EXTI EXTI、ADC、NVIC和AFIO 开发环境:keil MDK、STM32F103C8T6 1 )EXTI STM32F10xxx参考手册(中文)-> 中断与事件 ->…

文本三剑客grep与正则表达式、元字符

正则表达式 正则表达式又称为正规表达式、常规表达式、在代码中常简写为regex、regex或RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查…

OPC-UA open62541 C++测试代码

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 这是之前写的open62541测试代码…

Mac电脑安装打开APP显示问题已损坏 问题解决

当MAC电脑安装完软件打开时,显示文件已损坏,无法打开。搜了很多教程终于找到解决方案,记录下方便以后再用。 我的mac电脑是intel芯片的,如果你遇到这个问题,可以参考我的这个方案。 1.首先当打开软件后出现 “xx软件已…

【话题】你用过最好用的AI工具有那些

大家好,我是全栈小5,欢迎阅读小5的系列文章,这是《话题》系列文章 目录 背景一、C知道二、CSDN工具集三、AI工具的普及与受欢迎程度四、AI工具的实际应用与影响五、总结与展望文章推荐 背景 探讨人们在使用AI工具时,最喜欢的和认…

【多客陪玩】陪玩小程序源码APP+小程序+公众号开发 -源码交付,线下可爆改家政,整理师等功能

简述 随着电竞行业的快速发展,电竞陪玩APP正在逐渐成为用户在休闲娱乐时的首选。为了吸引用户和提高用户体验,电竞陪玩APP开发需要定制一些特色功能,并通过合适的盈利模式来获得收益。本文将为您介绍电竞陪玩APP开发需要定制的特色功能以及常…

【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

大型外企都在用的邮件大附件系统,究竟哪里好?

外企的业务往来复杂,内部沟通频繁,且普遍采用邮件作为沟通方式,外企一般使用的邮件系统多种多样,但其中一些较为常见和广泛使用的包括Zoho Mail和Outlook等。 Outlook作为微软旗下的全球主流电子邮件服务提供商之一,也…

vscode 侧边栏资源管理器图标消失解决方案

偶然操作导致,侧边栏资源管理器图标消失,用着及其难受 尝试在网上找解决方案,找了很久都是说右键侧边栏啥啥的,无法解决 尝试删除setting.json 也无法解决 最终解决方案: 打开查看 ,命令面板 输入 View: Reset View Locations 回车就解决了

FFmpeg常用API与示例(二)—— 解封装与转封装

封装层 封装格式(container format)可以看作是编码流(音频流、视频流等)数据的一层外壳,将编码后的数据存储于此封装格式的文件之内。 封装又称容器,容器的称法更为形象,所谓容器,就是存放内容的器具,饮料是内容&…