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中find()方法的使用
May 18 Python
python追加元素到列表的方法
Jul 28 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
python实现图书管理系统
Mar 12 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python中eval与int的区别浅析
Aug 11 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
python对接ihuyi实现短信验证码发送
May 10 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
python读取pdf格式文档的实现代码
Apr 01 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
ASP和PHP都是可以删除自身的
2007/04/09 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
Python类的用法实例浅析
2015/05/27 Python
Python实现新浪博客备份的方法
2016/04/27 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
详解django三种文件下载方式
2018/04/06 Python
python3.7 sys模块的具体使用
2019/07/22 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
Python实现自动签到脚本功能
2020/08/20 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
毕业自我鉴定总结
2014/03/24 职场文书
请假条怎么写
2014/04/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
初中历史教学反思
2016/02/19 职场文书
Python制作动态字符画的源码
2021/08/04 Python