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进程通信之匿名管道实例讲解
Apr 11 Python
Python实现的矩阵类实例
Aug 22 Python
Python定时器实例代码
Nov 01 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
python中使用print输出中文的方法
Jul 16 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python矩阵的转置和逆转实例
Dec 12 Python
Python检查ping终端的方法
Jan 26 Python
Python 如何提高元组的可读性
Aug 26 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
python内置模块collections知识点总结
Dec 19 Python
python误差棒图errorbar()函数实例解析
Feb 11 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中使用虚代理实现延迟加载技术
2014/11/05 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python常见数制转换实例分析
2015/05/09 Python
python daemon守护进程实现
2016/08/27 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
python绘制分布折线图的示例
2020/09/24 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
应届大专生求职信
2014/06/26 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python