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中遍历文件的3个方法
Sep 02 Python
python通过smpt发送邮件的方法
Apr 30 Python
Python创建模块及模块导入的方法
May 27 Python
Python中内建函数的简单用法说明
May 05 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
python自定义时钟类、定时任务类
Feb 22 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
python scrapy重复执行实现代码详解
Dec 28 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
python ETL工具 pyetl
Jun 07 Python
python实现A*寻路算法
Jun 13 Python
python blinker 信号库
May 04 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之变量、常量学习笔记
2008/03/27 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
python实现电子产品商店
2019/02/26 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python list多级排序知识点总结
2019/10/23 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
通过cmd进入python的步骤
2020/06/16 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
公司培训欢迎词
2014/01/10 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
监督检查工作方案
2014/05/28 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书