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 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
Python执行时间的计算方法小结
Mar 17 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python之array赋值技巧分享
Nov 28 Python
python实现双色球随机选号
Jan 01 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
教你利用python实现企业微信发送消息
May 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
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
利用python画一颗心的方法示例
2017/01/31 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
实例详解Python模块decimal
2019/06/26 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
项目投资意向书
2014/04/01 职场文书
水毁工程实施方案
2014/04/01 职场文书
建房协议书
2014/04/11 职场文书
出纳试用期自我评价
2015/03/10 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
深入理解Vue的数据响应式
2021/05/15 Vue.js