当前位置: 首页 > news >正文

链表的回文结构

题目描述

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

题目分析

我们的思路是:

  • 找到中间结点
  • 逆置后半段
  • 比对

我们可以简单画个图来表示一下:

 ‘

奇数和偶数都是可以的

找中间结点

我们可以用快慢指针来找中:leetcode:链表的中间结点-CSDN博客

写一个找中的函数middleNode:

然后写一个逆置的函数reverseList:

我们画图表示一下头插的过程:

最后我们进行一个对比

代码示例

有了这个思路,我们就可以编写代码了:

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
class PalindromeList {
public:struct ListNode*reverseList(ListNode*head){struct ListNode*cur=head;struct ListNode*newhead=NULL;while(cur){struct ListNode*next=cur->next;//头插cur->next=newhead;newhead=cur;cur=next;}return newhead;}struct ListNode*middleNode(ListNode*head){struct ListNode*slow,*fast;slow=fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;}return slow;}bool chkPalindrome(ListNode* head) {// write code herestruct ListNode*mid=middleNode(head);struct ListNode*rhead=reverseList(mid);while(head&&rhead){if(head->val!=rhead->val){return false;}head=head->next;rhead=rhead->next;}return true;}
};

结果也就通过了:

http://www.lryc.cn/news/241120.html

相关文章:

  • CSS特效017:球体涨水的效果
  • Windows下安装Anaconda3并使用JupyterNoteBook
  • 什么年代了,还不会 CI/CD 么?
  • centos 7.7 安装Python-3.7.4
  • git的用法
  • 管道在Vue和Angular中的作用及React的替代方案
  • 计算机基础知识57
  • Flutter 小技巧之 3.16 升级最坑 M3 默认适配技巧
  • 激光雷达与惯导标定 | Lidar_IMU_Init : 编译
  • 进程池,线程池与跨进程数据共享爬取某岸网图片
  • 【 图片加载】Vue前端各种图片引用
  • thinkphp6生成PDF自动换行
  • wpf devexpress实现输入验证使用验证规则
  • Vue表单的整体处理
  • 探索实人认证API:保障在线交互安全的关键一步
  • XDR 网络安全:技术和最佳实践
  • 【如何学习Python自动化测试】—— 警告框处理
  • Jenkins Ansible 参数构建
  • 第十五届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组(详细分析解答)
  • 2023亚太杯数学建模B题思路+模型+代码+论文
  • GitHub 报告发布:TypeScript 取代 Java 成为第三受欢迎语言
  • 配置hikari数据库连接池时多数据源不生效
  • matlab 最小二乘拟合平面并与XOY平面对齐
  • jQuery【回到顶部、Swiper轮播图、立即执行函数、链式调用、参数重载、jQuery扩展】(六)-全面详解(学习总结---从入门到深化)
  • day60
  • thingsboard的WebSocket API的使用
  • An issue was found when checking AAR metadata
  • 搭建线上jvm监控
  • 【计算机网络笔记】数据链路层概述
  • vscode-insiders Remote-SSH XHR failed无法访问远程服务器