当前位置: 首页 > 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

相关文章:

  • 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的图像去模糊方法
  • 金融监管总局:做好2025年小微企业金融服务工作
  • 长三角多地重启游轮跨市游,“恢复苏杭夜航船”呼声又起
  • 央视315晚会曝光“保水虾仁”后,湛江4家涉事企业被罚超800万元
  • 央行将增加3000亿元科技创新和技术改造再贷款额度
  • 刘诚宇、杨皓宇进球背后,是申花本土球员带着外援踢的无奈
  • 机关食堂向游客开放的重庆荣昌区,“消费市场迎来历史性突破”