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多重继承实例
Oct 11 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
Python实现Linux的find命令实例分享
Jun 04 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
python书籍信息爬虫实例
Mar 19 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python 批量将中文名转换为拼音
Feb 07 Python
python基于tkinter制作无损音乐下载工具
Mar 29 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
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
详解JavaScript修改注册表的方法
2020/01/05 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
python tornado微信开发入门代码
2018/08/24 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
基于python实现操作git过程代码解析
2020/07/27 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
华为慧通笔试题
2016/04/22 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
中科软测试工程师面试题
2012/06/16 面试题
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
高级编程求职信模板
2014/02/16 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
关于python类SortedList详解
2021/09/04 Python