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中的super()方法使用简介
Aug 14 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
使用Python读取大文件的方法
Feb 11 Python
django中的HTML控件及参数传递方法
Mar 20 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
利用Python函数实现一个万历表完整示例
Jan 23 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
学习php分页代码实例
2013/10/24 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
详解Python3定时器任务代码
2019/09/23 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
单身联谊活动方案
2014/01/29 职场文书
网络信息安全承诺书
2014/03/26 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
软件测试专业推荐信
2014/09/18 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
个人合伙协议书范本
2014/10/14 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书