[leetcode]python3 算法攻略-回文链表

2023-11-13

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

方案一:指针法

class Solution:
    def isPalindrome(self, head):
        """
        判断一个链表是否是回文的,很自然的想法就是两个指针,一个指针从前往后走,一个指针从后往前走,判断元素值是否相同,这里要分几个步骤来进行求解:
1、找到链表长度的一半,用追赶法,一个指针一次走两步,一个指针一次走一步
2、将后一半数组转置
3、判断链表是否是回文链表
        :type head: ListNode
        :rtype: bool
        """
        slow = fast = head
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next

        node = None
        while slow:
            nxt = slow.next
            slow.next = node
            node = slow
            slow = nxt

        while node and head:
            if node.val != head.val:
                return False
            node = node.next
            head = head.next
        return True

方案二:列表法

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def isPalindrome(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        res = []
        cur = head
        while cur:
            res.append(cur.val)
            cur = cur.next
        return res == res[: : -1]


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[leetcode]python3 算法攻略-回文链表 的相关文章

  • 第四章. Pandas进阶—数据格式化

    第四章 Pandas进阶 4 2 数据格式化 1 设置小数位数 round函数 DataFrame round decimals 0 args kwargs 参数说明 decimals 用于设置保留的小数位数 args kwargs 附加关

随机推荐

  • Unity灯光效果及设置详解

    时间 2017 03 03 发布 Unity3D培训 来源 Unity3D教程 分享到 Unity已经成为游戏程序员中越来越受欢迎的游戏引擎 这是因为Unity直接支持多种平台 如移动 桌面和控制台环境 此外 对于低收入开发者或工作室来说
  • 4399游戏测试实习生面试

    2014年5月13日 经常在大街网看到4399的测试招聘 我都没放在心上 虽然肥佬一直说4399福利很棒 送车 但我不喜欢游戏 有一天爱游邀请我投它的游戏测试实习生岗位 我就点击几下申请了 心里想着反正不是4399 或许游戏性质不会太强 忘
  • 数学建模——模拟退火算法(Simulated Annealing,SA)

    模拟退火算法 一 模拟退火算法概述 二 算法步骤 三 算法特点 四 模拟退火算法理解 图解 五 Metropolis准则 六 模拟退火算法的应用 七 模拟退火算法Matlab代码 工具箱求解非线性函数 注 本博客仅做本人笔记参考使用 推荐博
  • 微信小程序的点击、双击、长按事件

    一 点击事件 点击事件是最常用的事件 轻点即可触发事件 如果想要添加参数即可通过 data 加事件名 的方式添加参数 通过 event参数的target dataset 加事件名 获取 我们来看看样例 wxml代码
  • 序列化pickle&json模块

    序列化pickle json模块 序列化 序列化是指把内存里的数据类型转变成字符串 以使其能存储到硬盘或通过网络传输到远程 因为硬盘或网络传输时只能接受bytes 用于序列化的两个模块 json 用于字符串 和 python数据类型间进行转
  • 错误ERROR: cannot launch node of type

    ERROR cannot launch node of type robot vision motion detector py can t locate node motion detector py in package robot v
  • javaweb之MVC购物车(加入购物车,订单,订单详情)

    MVC Model View Controller 是软件工程中的一种软件架构模式 它把软件系统分为模型 视图和控制器三个基本部分 用一种业务逻辑 数据 界面显示分离的方法组织代码 将业务逻辑聚集到一个部件里面 在改进和个性化定制界面及用户
  • Scala学习路线

    本文是类比Java基础知识的 Scala学习笔记 1 Scala基础 1 Scala一些基础知识 https blog csdn net hzp666 article details 114842022 2 控制结构 if判断 https
  • 自然人税收管理系统服务器,【轻松学个税申报】自然人税收管理系统客户端操作...

    2018年8月1日个人所得税代扣代缴申报软件 自然人税收管理系统客户端正式上线 新的软件在界面 操作方法 实现功能等较多变化 为了大家能够熟练操作与应用 从今天起开始为大家带来自然人税收管理系统客户端操作应用 今天我们先来说一说新建帐户 一
  • 小学生Python编程 —— 欢乐钢琴

    孩子的又一作品 欢乐钢琴 from pgzrun import WIDTH 960 HEIGHT 720 o 0 name s song Actor name str o png 480 180 a press False 动效函数 def
  • sublime text3下搭建Python IDE--Anaconda插件(自动补全)

    今天自己想在sublime text3下装个python自动补全插件 当安装一个包管理器时 Package Contral 时 ctrl shift p输入Install Package时 总是报错说没有这个包 在网上也找了很多解决办法 有
  • Android Apache安装及局域网手机无法访问解决办法

    Android Apache安装及局域网手机无法访问解决办法 Apache是一款常用的开源Web服务器软件 可以在Android设备上安装并提供Web服务 本文将介绍如何在Android设备上安装Apache 并提供解决方案以解决在同一局域
  • 代码静态分析工具——splint的学习与使用

    引言 最近在项目中使用了静态程序分析工具PC Lint 体会到它在项目实施中带给开发人员的方便 PC Lint是一款针对C C 语言 windows平台的静态分析工具 FlexeLint是针对其他平台的PC Lint版本 由于PC Lint
  • ResNet简介

    ResNet Residual Network 此网络于2015年 国人何先生提出 用于解决随着深度学习的层数加深造成的网络退化现象和梯度消失 梯度爆炸 问题1 退化现象 当深度学习的各项指标能够随着训练轮数收敛的情况下 网络的层数增强未能
  • 深度学习车辆检测实现自动驾驶

    在本文中 我将通过一个车辆检测示例演示如何使用深度学习创建目标检测器 相同的步骤可用于创建任何目标探测器 我经常有朋友和同事问我自动驾驶系统如何感知周围的环境并做出 人类 的决定 目标检测是指对图像和视频中的目标进行定位和分类 下图显示了一
  • MySQL体系结构及数据库在Linux的部署

    数据库 存储数据的仓库 是长期存放在计算机内 有组织 可共享的大量数据的集合 数据库中的数 据按照一定数据模型组织 描述和存储 具有较小的冗余度 较高的独立性和易扩展性 并为各种用户共享 先来看看MySQL的体系架构图 可以看出MySQL的
  • 关于串口通信协议的解析,该怎么解决

    关于串口通信协议的解析 该怎么解决 串口通信协议 由于本系统采用非规范式输入 导致一帧数据可能分成几次接收 为了能够判断一帧数据是否接收完整 本系统制定了一套特殊的串口通信协议 如附图所示 附图 通信协议定义 在本系统的串口通信协议中 一帧
  • sql sever2008 R2 检测到索引可能已损坏。请运行 DBCC CHECKDB。

    1 设置成单用户状态 USE MASTER ALTER DATABASE DBNAME SET SINGLE USER GO DBNAME为修复的数据库名 2 执行修复语句 检查和修复数据库及索引 dbcc checkdb DBNAME R
  • 【pip】彻底解决 module ‘tensorflow‘ has no attribute ‘random_normal‘

    翻译 tensorflow显示没有random normal模块 解决 将代码中的 tf random normal 用tf random normal代替 区分 与
  • [leetcode]python3 算法攻略-回文链表

    请判断一个链表是否为回文链表 方案一 指针法 class Solution def isPalindrome self head 判断一个链表是否是回文的 很自然的想法就是两个指针 一个指针从前往后走 一个指针从后往前走 判断元素值是否相同