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 命令行也可以自动补全
Nov 30 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
Django如何自定义分页
Sep 25 Python
Python基础教程之异常详解
Jan 10 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
Python面向对象之类的封装操作示例
Jun 08 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
python中threading和queue库实现多线程编程
Feb 06 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python目录与文件名操作例子
2016/08/28 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
pycharm创建一个python包方法图解
2019/04/10 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
优秀应届毕业生推荐信
2014/02/18 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书