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

OR36 链表的回文结构

描述

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。

给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。

测试样例:

1->2->2->1
返回:true

思路:找到链表的中间节点(偶数个的话取右边那个)然后把从中间节点开始反转链表然后在用反转后的链表和反转的前半部分的链表比

 反转链表和快慢指针

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
typedef struct ListNode LN;class PalindromeList {
public:LN* reverList(LN* head){if(head==NULL){return head;}LN* n1,*n2,*n3;n1=NULL;n2=head;n3=head->next;while(n2){n2->next=n1;n1=n2;n2=n3;if(n3){n3=n3->next;}}return n1;}LN* midNode(LN* head){LN* fast,* slow;fast=slow=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;}return slow;}bool chkPalindrome(ListNode* A) {// write code hereLN* midnode=midNode(A);LN* remid=reverList(midnode);while(A && remid){if(A->val !=remid->val){return false;}A=A->next;remid=remid->next;}return true;}
};

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

相关文章:

  • 【译】微调与人工引导: 语言模型调整中的 SFT 和 RLHF
  • kylin java.io.IOException: error=13, Permission denied
  • 前端面试01总结
  • 算法--目录
  • ArcGIS Pro 3D建模简明教程
  • 24届数字IC设计/验证秋招总结贴——先看这个
  • 带洞平面三角分割结果的逆向算法
  • MGRE-OSPF接口网络类型实验
  • ChatGPT科研利器详解:写作论文轻松如玩游戏
  • vue3从精通到入门23:定义全局变量
  • 反爬虫之代理IP封禁-协采云IP池
  • ELK-Kibana 部署
  • Backtrader 量化回测实践(7)——在jupyter中执行bt的samples
  • npm vs. pnpm vs. Yarn: 三者之间的区别与比较
  • Learning Feature Sparse Principal Subspace 论文阅读
  • Hibernate入门经典与注解式开发大全
  • 蓝桥杯之注意事项
  • ES6 全详解 let 、 const 、解构赋值、剩余运算符、函数默认参数、扩展运算符、箭头函数、新增方法,promise、Set、class等等
  • c++ - 类的默认成员函数
  • Java哈希查找(含面试大厂题和源码)
  • c++中常用库函数
  • Scrapy框架 进阶
  • ubuntu22安装snipaste
  • spring-cloud微服务openfeign
  • 小程序变更主体需要多久?
  • 19 Games101 - 笔记 - 相机与透镜
  • Flink入门学习 | 大数据技术
  • Arthas实战教程:定位Java应用CPU过高与线程死锁
  • HTML制作跳动的心形网页
  • 如何在Odoo 17 销售应用中使用产品目录添加产品