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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
Python之eval()函数危险性浅析
Jul 03 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
Python入门之使用pandas分析excel数据
May 12 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的curl实现get和post的代码
2008/08/23 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
PHPMailer发送邮件
2016/12/28 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python中import reload __import__的区别详解
2017/10/16 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
python实现随机梯度下降法
2020/03/24 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
如何利用Python识别图片中的文字
2020/05/31 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
上班睡觉检讨书
2014/01/09 职场文书
家教广告词
2014/03/19 职场文书
校庆筹备方案
2014/03/30 职场文书
就职演讲稿范文
2014/05/19 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
西游降魔篇观后感
2015/06/15 职场文书
暑期家教宣传单
2015/07/14 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
python本地文件服务器实例教程
2021/05/02 Python