当前位置:网站首页>[C题目]力扣234. 回文链表
[C题目]力扣234. 回文链表
2022-08-02 20:33:00 【GLC8866】
思路:
struct ListNode* MiddleNode(struct ListNode* head)
{
struct ListNode* slow=head;
struct ListNode* fast=head;
while(fast&&fast->next)//防止结点为奇数个时,fast->next先为NULL,fast应该写在fast->next的左边。
{
fast=fast->next->next;
slow=slow->next;
}
return slow;
}
struct ListNode* reverseList(struct ListNode* head)
{
//创建哨兵位的头结点
struct ListNode* newhead=(struct ListNode*)malloc(sizeof(struct ListNode));
newhead->next=NULL;//看作指向NULL结点
struct ListNode* cur=head;
while(cur)
{
struct ListNode* tmp=cur->next;
cur->next=newhead->next;
newhead->next=cur;
cur=tmp;
}
return newhead->next;
}
bool isPalindrome(struct ListNode* head)
{
struct ListNode* middle=MiddleNode(head);
struct ListNode* newhead=reverseList(middle);
struct ListNode* cur1=head;
struct ListNode* cur2=newhead;
while(cur2)//奇数个结点时,虽然后半段节点数比前半段结点数多一个,但当cur2指向middle时,cur1也存着middle的地址(指针域并没有被覆盖),所以cur2->val依然等于cur1->val,不影响判断两个链表是否相等。
{
if(cur2->val!=cur1->val)
return false;
cur1=cur1->next;
cur2=cur2->next;
}
return true;
}
边栏推荐
猜你喜欢

汉源高科2光12电千兆导轨式网管型工业以太网交换机双光自愈保护式以太网光交换机

【实战 已完结】WPF开发自动化生产管理平台

美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)

奥特学园ROS笔记--7(289-325节)

一次线上事故,我顿悟了异步的精髓
快速构建电脑软件系统 、超好用经典的网页推荐汇总

用户之声 | GBASE南大通用实训有感

Day12 接口和协议

2022年金九银十,Android面试中高频必问的问题汇总

华为设备配置BFD多跳检测
随机推荐
汇编语言中b和bl关键字的区别
2170. 使数组变成交替数组的最少操作数
Linphone 被叫方如何解析来电SIP消息中的自定义头消息
包管理工具Chocolate - Win10如何安装Chocolate工具、快速上手、进阶用法
李沐动手学深度学习V2-BERT预训练和代码实现
14、学习MySQL 连接的使用
一款免费的容器安全 SaaS 平台使用记录
信息学奥赛一本通(1256:献给阿尔吉侬的花束)
The five classification of software testing
框架设计:PC 端单页多页框架如何设计与落地
Li Mu hands-on learning deep learning V2-bert and code implementation
训练双塔检索模型,可以不用query-doc样本了?明星机构联合发文
How the sensor works
Bee 事务注解 @Tran 使用实例
56.【全局变量和局部变量专题】
博客主页rrs代码
HCIP--路由策略实验
The software testing process specification is what?Specific what to do?
How to quickly compare two byte arrays for equality in .NET
Implement fashion_minst clothing image classification