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中的作用域规则详解
Jan 30 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
对django 模型 unique together的示例讲解
Aug 06 Python
python实现加密的方式总结
Jan 19 Python
python实现批量修改文件名
Mar 23 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
Python中如何添加自定义模块
Jun 09 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
Python 使用dict实现switch的操作
Apr 07 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
jQuery的12招常用技巧分享
2011/08/08 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
jquery.validate使用详解
2016/06/02 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python解惑之整数比较详解
2017/04/24 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
Django中的cookie和session
2019/08/27 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
三八节主持词
2014/03/17 职场文书
校庆筹备方案
2014/03/30 职场文书
会计演讲稿范文
2014/05/23 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
理解python中装饰器的作用
2021/07/21 Python
用Python可视化新冠疫情数据
2022/01/18 Python