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实现超简单端口转发的方法
Mar 13 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
Python操作csv文件实例详解
Jul 31 Python
5个很好的Python面试题问题答案及分析
Jan 19 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
python一键去抖音视频水印工具
Sep 14 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
基于pandas中expand的作用详解
Dec 17 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
浅谈django channels 路由误导
May 28 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
Python实现单例模式的5种方法
Jun 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
用php和MySql来与ODBC数据连接
2006/10/09 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
php使用codebase生成随机数
2014/03/25 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
深入学习Python中的装饰器使用
2016/06/20 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
高校教师自荐信范文
2014/03/13 职场文书
新春联欢会主持词
2014/03/24 职场文书
高考标语大全
2014/06/05 职场文书
黑白记忆观后感
2015/06/18 职场文书
小学语文教学反思范文
2016/03/03 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
python文件目录操作之os模块
2021/05/08 Python
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis