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语言编写电脑时间自动同步小工具
Mar 08 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
Python之PyUnit单元测试实例
Oct 11 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
python连接MySQL数据库实例分析
May 12 Python
Ubuntu下安装PyV8
Mar 13 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
python自动生成证件号的方法示例
Jan 14 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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连接SQLServer2005 的问题解决方法
2010/07/19 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
鼠标图片振动代码
2006/07/06 Javascript
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
Python基于Faker假数据构造库
2020/11/30 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
Java语言的优势
2015/01/10 面试题
一套Delphi的笔试题一
2016/02/14 面试题
乌鸦喝水教学反思
2014/02/07 职场文书
协议书样本
2014/04/23 职场文书
大学生社会实践方案
2014/05/11 职场文书
会议欢迎标语
2014/06/30 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
项目验收申请报告
2015/05/15 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
家电创业计划书
2019/08/05 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL