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 pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
简单的编程0基础下Python入门指引
Apr 01 Python
python写入xml文件的方法
May 08 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
Python实现多属性排序的方法
Dec 05 Python
python实现三次样条插值
Dec 17 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Python 处理日期时间的Arrow库使用
Aug 18 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中的流(streams)浅析
2015/07/02 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP strripos函数用法总结
2019/02/11 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python中自定义函数的教程
2015/04/27 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
《少年王勃》教学反思
2014/04/27 职场文书
机电一体化专业求职信
2014/07/22 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年消防工作总结
2015/04/24 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
九不准学习心得体会
2016/01/23 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书