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

python-leetcode-回文链表

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

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def isPalindrome(self, head: Optional[ListNode]) -> bool:
        if not head or not head.next:
            return True

        # 使用快慢指针找到链表中点
        slow, fast = head, head
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next

        # 反转后半部分链表
        prev = None
        while slow:
            temp = slow.next
            slow.next = prev
            prev = slow
            slow = temp

        # 比较前半部分和后半部分
        left, right = head, prev
        while right:  # 只需比较后半部分长度
            if left.val != right.val:
                return False
            left = left.next
            right = right.next

        return True

http://www.dtcms.com/a/32804.html

相关文章:

  • VSCode - VSCode 切换自动换行
  • 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略来了!
  • SpringBoot 如何统一 API 响应格式
  • Kubernetes 中服务注册机制解析:自动化与灵活性的背后
  • 基于YOLO11深度学习的糖尿病视网膜病变检测与诊断系统【python源码+Pyqt5界面+数据集+训练代码】
  • edge浏览器将书签栏顶部显示
  • NumPy的基本使用
  • NX二次开发树列表-添加回调响应(一)
  • RAG基本原理
  • FFMPEG编码容错处理解决办法之途径----升级库文件
  • MacOS Sequoia 15 允许任何来源app安装最新解决方案
  • C#上位机--进程和线程的区别
  • 《Head First设计模式》读书笔记 —— 单件模式
  • ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析
  • 行为正则化与顺序策略优化结合的离线多智能体学习算法
  • Java 第十章线程(2)
  • MarsCode 49
  • 细说STM32F407单片机1个ADC使用DMA同时采集3个输入通道的方法
  • ProfiNet转EtherNet/IP攻克罗克韦尔PLC与光伏电站监控系统连接难题的通讯配置技术
  • Pytorch实现之结合SE注意力和多种损失的特征金字塔架构GAN的图像去模糊方法
  • CLIP学习笔记
  • 安全运维,等保测试常见解决问题。
  • 智慧校园系统在学生学习与生活中的应用
  • RK Android11 WiFi模组 AIC8800 驱动移植调试记录
  • 力扣-回溯-37 解数独
  • JavaScript异步编程方式多,区别是什么?
  • 有时候通过无线上网,有线共享局域网通过该有线为网关进行上网,设置指定的网关IP信息
  • UE5 编辑器辅助/加强 插件搜集
  • C#使用Semantic Kernel:接入本地deepseek-r1
  • 【多模态处理篇五】【DeepSeek文档解析:PDF/Word智能处理引擎】