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

链表的回文结构题解

首先阅读题目:

1.要保证是回文结构

2.他的时间复杂度为O(n)、空间复杂度为O(1)

给出思路:

1.首先利用一个函数找到中间节点

2.利用一个函数逆置中间节点往后的所有节点

3.现在有两个链表,第一个链表取头节点一直到中间节点、第二个链表取头结点到尾结点

4.比较两个链表,从头比到尾,如果都相同,就返回true,否则返回false

解答题目:

1.首先完成函数来找到中间节点,这个以前讲过,可以参考下面链接:

https://blog.csdn.net/xpcxpt/article/details/147618198?spm=1001.2014.3001.5501

2.完成函数实现逆置,这个以前也讲过,可以参考下面链接:

https://blog.csdn.net/xpcxpt/article/details/147618123?spm=1001.2014.3001.5501

3.有了两个前置函数middleNode()和reverseList(),可以很好的解决题目

定义两个指针接受函数的返回值;

while循环比较两个链表,都相同返回true,有一个不相同就返回false

代码如下:

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
typedef struct ListNode LSTNode;
class PalindromeList {public:struct ListNode* middleNode(struct ListNode* head) {LSTNode* slow, *fast;fast = slow = head;while (fast && fast->next) {slow = slow->next;fast = fast->next->next;}return slow;}struct ListNode* reverseList(struct ListNode* head) {if (head == NULL) {return head;}LSTNode* n1, *n2, *n3;n1 = NULL;n2 = head;n3 = n2->next;while (n2) {n2->next = n1;n1 = n2;n2 = n3;if (n3) {n3 = n3->next;}}return n1;}bool chkPalindrome(ListNode* A) {struct ListNode* mid = middleNode(A);//指向中间节点的指针struct ListNode* rmid=reverseList(mid);//逆置了,这个指针指向的相同于原链表的尾结点while(rmid&&A)//两个都不能为空{if(rmid->val!=A->val)//有一个不相同{return false;}rmid=rmid->next;//向后走A=A->next;//向后走}return true;//都相同的情况}
};

相关文章:

  • MySQL 比较运算符详解
  • NV189NV195美光固态闪存NV197NV199
  • 学习笔记:Qlib 量化投资平台框架 — FOR DEVELOPERS
  • c++ 函数参数传递
  • HTML与CSS实现风车旋转图形的代码技术详解
  • Windows下调试WebRTC源码
  • diskANN总结
  • 【Linux系统篇】:Linux线程控制基础---线程的创建,等待与终止
  • UDP 通信详解:`sendto` 和 `recvfrom` 的使用
  • 【重走C++学习之路】27、C++IO流
  • 市面上所有大模型apikey获取指南(持续更新中)
  • 【Mytais系列】Datasource模块:数据源连接
  • 动态规划之路劲问题3
  • GitHub Actions 和 GitLab CI/CD 流水线设计
  • 基于 SAFM 超分辨率上采样模块的 YOLOv12 改进方法—模糊场景目标检测精度提升研究
  • Qt开发:按钮类的介绍和使用
  • java_Lambda表达式
  • 关于算法设计与分析——拆分表交换问题
  • 学习黑客风险Risk
  • MCP 探索:browser tools MCP + Cursor 可以实现哪些能力
  • 市值增22倍,巴菲特30年重仓股盘点
  • 9米长林肯车开进“皖南川藏线”致拥堵数小时,车主回应称将配合调查
  • 研究完蚂蚁搬家,我好像明白了为什么我们总是堵车
  • 徐丹任武汉大学药学院院长:研究领域在国际上处领跑地位
  • 五一假期首日,上海外滩客流超55万人次
  • 多地景区发公告称售票达接待峰值,有景区暂停网络和线下售票