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 循环while和for in简单实例
Aug 16 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
python opencv肤色检测的实现示例
Dec 21 Python
解决Pycharm 运行后没有输出的问题
Feb 05 Python
Python函数式编程中itertools模块详解
Sep 15 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/06/18 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python模块的制作方法实例分析
2019/12/21 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
Linux的文件类型
2012/03/07 面试题
优秀团队获奖感言
2014/02/19 职场文书
鉴定评语大全
2014/05/05 职场文书
大学生交通专业求职信
2014/09/01 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
机关工会工作总结2015
2015/05/26 职场文书
离职告别感言
2015/08/04 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android