leetcode-链表-234.回文链表

【力扣题解 Day 17】234. 回文链表 力扣算法打卡记录 阅读详情

请判断一个链表是否为回文链表。

示例 1:

输入: 1->2
输出: false
示例 2:

输入: 1->2->2->1
输出: true
进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool isPalindrome(ListNode* head) {
        if (head == nullptr)
            return true;
        else if (head->next == nullptr)
            return true;
        
        ListNode * f = head;
        ListNode * s = head;
        
        while(f != nullptr && f->next != nullptr)
        {
            s = s->next;
            f = f->next->next;
        }
        
        // reverse the first half list
        ListNode * pre, * next;
        pre = nullptr;
        while(head != s)
        {
            next = head->next;
            head->next = pre;
            pre = head;
            head = next;
        }
        head = pre;
        
        // move s a step more if the total number is odd
        if (f != nullptr)
            s = s->next;
        
        while(head != nullptr && s != nullptr)
        {
            if (head->val != s->val)
                return false;
            
            head = head->next;
            s = s->next;
        }
        
        return true;
    }
};
CANoe诊断测试避坑指南:DTC故障注入与ECU刷写失败的N个常见原因排查 本文深入解析CANoe诊断测试中的常见问题,重点探讨DTC故障注入与ECU刷写失败的排查策略。从会话管理、安全访问到数据完整性校验,提供实战经验与CAPL脚本示例,帮助工程师规避诊断测试中的典型陷阱,提升车载网络通信与ECU刷写的可靠性。 阅读详情

相关推荐

perftest实战:从零到一,精准评估RDMA网络性能

想象一下,两台服务器传输数据就像在同一个主板上交换内存,这种零拷贝、低延迟的特性,正是高性能计算、分布式存储等场景梦寐以求的。对于云环境用户,主流云厂商现在都提供RDMA实例(比如AWS的EFA、阿里云的eRDMA)。但要注意,不同机型支持的RDMA协议版本可能不同,这会直接影响测试结果的上限值。记得记录每次测试的BW average值,绘制成曲线图后,你可能会发现类似"阶梯状"的性能变化,这通常与网卡的DMA引擎设计有关。在云环境中,由于虚拟化层的影响,延迟会比裸金属高20-30%。

weixin_28700411的博客 211

【简单】力扣算法题解析LeetCode234:回文链表

题目要求判断单链表是否为回文结构。解法采用快慢指针找中间节点,反转后半部分链表,再比较前后部分。关键步骤包括: 快慢指针定位中间节点; 反转后半部分链表; 双指针遍历比较节点值; 恢复原链表结构。 时间复杂度O(n),空间复杂度O(1)。代码实现通过边界处理、链表反转和恢复确保高效性。 核心优化:快慢指针+局部反转,避免额外空间消耗。

ylumwd的博客 1541

详解岭回归与L2正则化

最小二乘法存在不可逆和病态问题,导致解析解不可计算或不稳定,岭回归是一种有效的解决方法,以损失无偏性来换取稳定解, 本文介绍详细介绍了岭回归的基本原理,并从L2正则化角度来进行了解释。

Luoyingfeng的博客 1万+

leetcode力扣234题回文链表暴力解法

【代码】leetcode力扣234题回文链表暴力解法。

xiaohao0001abc的博客 268

WPS文档编辑时空行问题解决方案

本文详细介绍了如何解决WPS文档编辑时空行的问题,从问题描述与分析、解决方案详解到操作示例与注意事项等多个方面进行了全面阐述。通过本文的介绍和指导,用户可以快速定位问题根源并采取有效措施进行解决,从而提升文档编辑效率和美观性。未来,随着WPS软件的不断升级和优化,相信会有更多便捷高效的功能被添加到软件中。同时,用户也需要不断学习和探索新的操作技巧和方法,以适应不断变化的办公需求。希望本文能够为广大WPS用户提供有益的参考和帮助,共同推动办公效率的提升和发展。

mmoo_python的博客 1244

别再用Excel硬算传热了!用MATLAB/Octave复现国赛数学建模A题(附完整代码与避坑指南)

本文详细介绍了如何利用MATLAB/Octave高效解决数学建模中的传热问题,替代传统的Excel计算方法。通过复现2018年国赛A题的高温作业服传热模型,从理论推导到代码实现,提供了完整的有限差分法解决方案和参数拟合技巧,帮助读者提升数学建模效率和准确性。

weixin_30512965的博客 379

《LeetCode力扣练习》第234题 回文链表 Java

《LeetCode力扣练习》第234题 回文链表 Java 一、资源 题目: 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head = [1,2,2,1] 输出:true 示例 2: 输入:head = [1,2] 输出:false 提示: 链表中节点数目在范围[1, 105] 内 0 <= Node.val <= 9 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

XRT_knives的博客 389

揭秘CAS:深入理解与应用解析

在并发编程中,Compare-And-Swap(CAS)机制作为一种无锁算法,凭借其高效性和避免线程阻塞的优势,受到广泛关注。CAS不仅在底层实现上有着重要地位,还在实际开发中发挥着关键作用。本文将从CAS的工作原理、在Java中的实现及其增强机制来回顾和加深理解一下CAS。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 85万+

234. 回文链表 - 力扣(LeetCode)

然后将反转后的链表与前半段未反转的链表做比较,直到中间节点如果对应相同,则为回文数。将反转后的后半部分链表与原链表的前半部分逐个节点比较,如果所有对应节点的值都相等,则链表是回文的;fast 和 fast.next 都存在(fast 指向 1,fast.next 指向 2)。从中间节点开始,逐个将节点从原链表中取出,并将其插入到新链表的头部,从而实现反转。此时,反转后的后半部分链表为 1 -> 2 -> 3,pre 指向节点 1。此时,slow 指向节点 3,fast 指向节点 1。

q1111111da的博客 826

Pandas滚动窗口的妙用:动态计算列数据的最大值

Pandas的滚动窗口(rolling window)功能是数据分析中处理时间序列数据的重要工具。本文通过实例演示了如何使用rolling(window=4).max()计算DataFrame列A的滚动最大值,并将结果存入新列Max_Range。该方法会在4个元素的滑动窗口内计算最大值,前3行因数据不足显示为NaN。这种技术广泛应用于金融分析(如股价波动)、数据平滑和趋势识别等场景,能有效帮助分析数据的动态变化特征。示例展示了从数据准备到结果输出的完整流程,体现了Pandas在处理滑动窗口计算时的高效性和便

m0_74337424的博客 53

013:无人机航线规划的概念

航线规划是无人机任务规划的核心环节,它决定了无人机在整个任务执行过程中的飞行路径。航线规划需要考虑多种因素,包括飞行时间、飞行距离、能源消耗、飞行安全等。

qq_31762031的博客 2443

LeetCode 234. 回文链表(Java)

回文链表 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-linked-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ...

nuts_and_bolts的博客 161

Android功耗系列专题分析之四:待机概率性功耗高的失效分析

本文分析了Android设备待机功耗异常高的问题。通过日志发现系统休眠失败,原因是PowerManagerService.Display唤醒锁未被释放。进一步排查发现,指纹解锁功能在灭屏时未正确释放屏幕锁定,导致DisplayReady状态异常。解决方案是将指纹功能的背光控制与DisplayReady状态控制分离,使用两个变量独立管理。经验表明,快速定位问题比解决问题更重要,修改原生流程时需谨慎评估风险。

451

Leetcode 234. 回文链表

Leetcode 234. 回文链表 1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/palindrome-linked-list/   可以使用数组解决该问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std; #include "a

珍惜 8765

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

LeetCode 234. 回文链表

欢迎关注我的 力扣github仓库,有JavaScript和C++两个版本,每日更新 写在前面: 这题好无语,dev跑的结果和oj平台不一样,害我调试那么久 我是通过快慢指针+后半段反转的方式解决的,也可以快慢指针+前半段反转或者快慢指针+栈 等等方式 C++: /** * Definition for singly-linked list. * struct ListNode { * ...

Gary的博客 267

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

回文链表力扣234

emplace_back` 和 `push_back` 都是 C++ 中 `std::vector` 的成员函数,用于向容器尾部添加元素,但它们在实现方式和性能上有显著区别:1. 参数传递方式接受一个已构造好的对象(拷贝或移动),然后将该对象添加到 `vector` 末尾。// 拷贝构造// 移动构造(如果 Foo 支持移动语义)

2301_81834780的博客 646

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

力扣 234 回文链表

快慢指针 找中点(注意奇偶) 分开 反转后半链 比较(以后半链为主) class Solution { public: bool isPalindrome(ListNode* head) { ListNode *p=new ListNode(-1);//预先指针 ListNode *fast=p; ListNode *low=p; ...

qq_40519283的博客 377

力扣 234. 回文链表

​ 本文仅仅简单讲解了《234. 回文链表》这一题目,对链表和数组结合应用有了一定的掌握 ​

m0_51787573的博客 649

【LeetCode】234. 回文链表

为了养成创作习惯,从今天起开始刷力扣了,只刷简单和中等难度的题,分类刷,这个月就先刷链表题,从简单的开始按着顺序刷,一天一道,养生做法。为了锻炼一下自己,决定用 C 来写,据说是受苦,不过一天一道无所谓了。

m0_62051288的博客 260

golang力扣leetcode 234.回文链表

234.回文链表234.回文链表题解代码 234.回文链表 234.回文链表 题解 思路:取中点分成两个链表,翻转第二个,开始比较,注意其中一个为nil就可以停止了,因为有可能节点为奇数的情况 代码 package main type ListNode struct { Val int Next *ListNode } func findMiddle(head *ListNode) *ListNode { slow := head fast := head.Next for fast !=

清风 753

234.力扣LeetCode_回文链表

本文介绍了判断单链表是否为回文结构的算法,主要步骤包括:1)使用快慢指针找到链表中间节点进行分割;2)反转后半段链表;3)同时遍历前半段和反转后的后半段进行值比较;4)还原链表结构。算法通过三指针法实现链表反转,确保空间复杂度为O(1),时间复杂度为O(n)。在判断过程中会保留原链表结构,比较失败时立即恢复链表,最后无论是否回文都会还原链表。这种方法高效且不破坏输入数据,适用于需要判断链表回文性的场景。

2401_82472941的博客 424

leetcode 234.回文链表

leetcode 234.回文链表 题目描述 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解题思路 方法1: 借助额外的空间复杂度,使用栈的方法。 具体方法是,先压榨,这样的话,栈顶的元素就是链表的尾...

EngineerHe的博客 1510

回文链表 力扣234

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。

qq_65031432的博客 829

力扣(LeetCode)234. 回文链表

请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路:寻找中间结点,然后将后半部分链表倒置,后半部分链表长度是小于或等于原链表的,所以根据后半部分链表来确定对比循环次数 #include<iostrea...

Pwnpanda的博客 632

力扣[LeetCode].234. 回文链表

第一步将后一半翻转 第二步判断是否对称 第三步将后一半翻转回来 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool isPalindrome(ListNode* head) {.

C/C++/Linux/MySQL 1314

力扣234.回文链表

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。

2501_93509832的博客 891
上一篇: leetcode-链表-206.反转链表(递归)
下一篇: qt中的多线程和槽函数
sharemon
博客等级 码龄12年 45粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值