Python3实现的判断回文链表算法示例


Posted in Python onMarch 08, 2019

本文实例讲述了Python3实现的判断回文链表算法。分享给大家供大家参考,具体如下:

问题:

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

方案一:指针法

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]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的另外几种语言实现
Jan 29 Python
python安装以及IDE的配置教程
Apr 29 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
Python 元组操作总结
Sep 18 Python
python 读取数据库并绘图的实例
Dec 03 Python
python如何求100以内的素数
May 27 Python
使用npy转image图像并保存的实例
Jul 01 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
python字符串循环左移
Mar 08 #Python
详解Python Matplot中文显示完美解决方案
Mar 07 #Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 #Python
Python3实现的判断环形链表算法示例
Mar 07 #Python
浅析Python 读取图像文件的性能对比
Mar 07 #Python
python try 异常处理(史上最全)
Mar 07 #Python
通过shell+python实现企业微信预警
Mar 07 #Python
You might like
关于PHP实现异步操作的研究
2013/02/03 PHP
php类常量的使用详解
2013/06/08 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript中的undefined学习总结
2013/11/30 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
js变量提升深入理解
2016/09/16 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python如何使用unittest测试接口
2018/04/04 Python
python实现windows下文件备份脚本
2018/05/27 Python
python感知机实现代码
2019/01/18 Python
pymongo中group by的操作方法教程
2019/03/22 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
python中upper是做什么用的
2020/07/20 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
酒店值班经理的工作职责范本
2014/02/18 职场文书
应届生求职信范文
2014/06/30 职场文书
网络研修随笔感言
2015/11/18 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL