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读写Excel文件的实例
Nov 01 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python探索之修改Python搜索路径
Oct 25 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
python实现银联支付和支付宝支付接入
May 07 Python
Opencv实现抠图背景图替换功能
May 21 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
详解Python list和numpy array的存储和读取方法
Nov 06 Python
Python属性和内建属性实例解析
Jan 14 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Django 如何实现文件上传下载
Apr 08 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
Codeigniter校验ip地址的方法
2015/03/21 PHP
Javascript的一种模块模式
2008/03/22 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
python通过floor函数舍弃小数位的方法
2015/03/17 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
学年自我鉴定范文
2013/10/01 职场文书
讲座主持词
2014/03/20 职场文书
美术指导助理求职信
2014/04/20 职场文书
节约能源标语
2014/06/17 职场文书
地理科学专业自荐信
2014/09/01 职场文书
先进班组材料范文
2014/12/25 职场文书
中小企业员工手册范本
2015/05/14 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python