前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >漫谈递归-回文链表

漫谈递归-回文链表

作者头像
早起的鸟儿有虫吃
发布于 2019-03-06 07:35:12
发布于 2019-03-06 07:35:12
1K00
代码可运行
举报
文章被收录于专栏:算法之美算法之美
运行总次数:0
代码可运行

题目

234. 回文链表 请判断一个链表是否为回文链表。

测试

示例 1: 输入: 1->2 输出: false

示例 2: 输入: 1->2->2->1 输出: true

答案

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
1  定义2个指针,head tail 
2. 递归遍历tail链表
3. 通过
     head++  链表前进, 递归特点:从上到下 
             这个是子递归完在函数内部修改的,然后当前递归在使用
             head已经发生改变)
     tail --     链表倒退,  
                 递归特点 回溯,利用函数栈跟踪轨获取最后节点。
                 tail没有改变
   判断是否回文 tail ==head
4.如果是继续,如果不是返回false
//执行用时: 20 ms, 在Palindrome Linked List的C++提交中击败了42.09% 的用户
**/
class Solution {
public:
    bool isPalindrome(ListNode* head) {
         //这2个参数意义不一样一个指针,一个指针的引用
        return isPalindrome(head,head);
    }
  
    bool isPalindrome(ListNode* tail,ListNode* &head)
    {
        if(NULL==tail) 
        {
            return true;
        }       
         //从上到下不做任何原始比较,直到结束。返回true
        bool flag=isPalindrome(tail->next,head);
        if (false ==flag)
        {
            return false;

        }        //最外层比较
        if (tail->val !=head->val)
        {
            return false;
        }
        //最里层比较,head是引用,修改的指针本身
        head =head->next;
        return flag;

    }
};

分析

  1. 什么是回文:
  1. 这就是递归 recursion(head)
  2. 链表 每个节点都是相同的结构 符合递归的特点 链表顺序遍历,这个规律无法违背?
  3. 递归特点之一 回溯 实现链表倒序遍历

性能

因为采用递归

执行用时: 20 ms, 在Palindrome Linked List的C++提交中击败了42.09% 的用户

空间: o(n) 时间:o(n)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Offer多多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个爬取用户所有微博的爬虫,还能断网续爬那种
熟悉这个微博超级话题爬虫系列的都知道,我已经停止对有GUI功能集中版本的维护了,集中精力维护无GUI版本功能独立版本的开发和维护,并且保证每个功能都是最小可用产品且互不干扰。但是功能独立版本一直有个历史遗留问题:没有将集中版本中爬取每个用户的所有微博的功能独立出来,刚好今天有空,我也觉得是时候写点东西了,于是就有了这篇文章。
月小水长
2020/08/18
6390
我用python开发了一个微博搜索关键词采集软件
微博是国内非常流行的社交媒体平台,内容主要以文字和图片为主,在实时性和KOL关注热度方面尤为突出。广大网友在微博平台大量输出自己的观点、看法,组成了一个活跃度极高的社区群体。同时,我本人也发现,每次热点事件爆发的时候,微博热搜也是所有媒体平台里最先曝光的平台(其他平台或多或少都有一些延迟)
马哥小迷弟132
2025/01/14
410
我用python开发了一个微博搜索关键词采集软件
用户、话题、评论一网打尽,分享一个最强微博爬虫
微博向来是一个极好的吃瓜圣地,为了获取微博上行行色色的数据,微博相关的爬虫也是层出不穷,因为无论是运营者还是数据分析从业者都或多或少需要微博数据,我的许多朋友也不例外,经过断断续续的努力,我完成了一个可能是史上最强大的微博爬虫的编写。
月小水长
2019/10/14
4K0
微博爬虫综述、错误汇总、Q&A
微博爬虫主要有两个导向,一个是微博内容的爬虫,其目的字段包括微博文本、发布者、转发/评论/点赞数等,另一个是微博评论的爬虫,其目的字段主要是评论文本和评论者。
月小水长
2020/03/19
1.5K0
微博爬虫综述、错误汇总、Q&A
微博爬虫出错居然还和网络运营商有关
在几个月以前,这个问题的解决办法是因为登录的微博开启了双重登录验证,只需要在微博 app 或者 web 的设置、账号安全、关闭双重登录验证即可,但是近期这个解决办法也失效了,我调试程序发现,com 微博登录的充分必要条件是手机微博扫码登录,可以直接扫码登陆,输入账号密码和验证码之后,跳转的还是那个扫码登录界面,可以说是非常智障的设计了,这不是强迫人下一个微博 app 吗。(此处有看不见的脏话)
月小水长
2020/09/01
9930
微博话题爬虫更新:突破 50 页限制
在上一次更新至今,又出现了不少了 bug,昨天趁着有空更新了代码,这次的更新主要做了三件事
月小水长
2020/02/13
4.6K0
微博话题爬虫更新:突破 50 页限制
2021 微博爬虫更新及使用指南
目前公众号平台改变了推送机制,点“赞”、点“在看”、添加过“星标”的同学,都会优先接收到我的文章推送,所以大家读完文章后,记得点一下“在看”和“赞”。
月小水长
2021/09/24
1.4K0
免 cookie 微博话题爬虫发布
首先是今天的主人公:不需要复制 cookie 的话题爬虫,它是针对 weibo.cn 这个站点的,只需要改动目标话题,就可以开始爬取了,代码已经放到 WeiboSuperSpider 的 Github 仓库了。在功能独立版文件夹下,取名 WeiboCnTopicSpiderWithoutCookie。
月小水长
2021/09/24
6190
微博爬虫重要更新:根据话题爬虫的结果批量化爬评论
在公众号以前的一篇文章 微博爬虫综述、错误汇总、Q&A 中,阐述了微博爬虫的不同目标站点之间的差异,并明确了我的微博爬虫的站点策略。
月小水长
2020/05/26
1.2K0
分析为周杰伦打榜的夕阳红老年团,告诉你他们真实年龄!
因为cxk的粉丝们质疑周杰伦微博没有数据 (周杰伦没有开通微博) 于是,无数隐匿江湖多年 看不下去的周杰伦老年粉开始被迫营业
xujjj
2019/08/06
1.1K0
超级方便的微博用户信息爬虫
代码全部开源在 WeiboSuperSpider 的 github 仓库地址,功能独立版文件夹下,取名 WeiboUserInfoSpider,
月小水长
2021/09/24
2K0
一键备份微博并导出生成PDF,顺便用Python分析微博账号数据
这里再分享下如何快速导出你的所有微博数据,然后用Python分析某个微博账号的数据,比如高赞,转发,评论微博,微博词云,微博发布时间轴,以及使用的手机。
苏生不惑
2020/06/04
8.6K2
【开放源代码】微博搜索用户爬虫
目前公众号平台改变了推送机制,点“赞”、点“在看”、添加过“星标”的同学,都会优先接收到我的文章推送,所以大家读完文章后,记得点一下“在看”和“赞”。
月小水长
2021/10/26
1.1K0
【开放源代码】微博搜索用户爬虫
微博位置爬虫发布
这个位置爬虫的结果可以和用户信息爬虫联动,比如有这样一个分析任务:去北京环球影城的人,都发了什么微博,男生多还是女生多,年龄群体分布怎么样,等等。都可以先用这个微博位置爬虫,爬完后的 csv 交给用户信息爬虫处理。
月小水长
2021/09/24
7591
Github上3.5k star 的微博爬虫,很赞!
前段时间帮一位老哥爬微博的一些数据,发现Github上有一个微博爬虫项目挺完善的。
Python进击者
2021/03/11
4.3K0
python爬取微博关键词搜索帖子,并封装成界面软件,适合文科生
在信息爆炸的时代,社交媒体成为了大众表达观点、分享生活的重要阵地,而微博凭借其强大的实时性和广泛的影响力,一直占据着社交媒体的头部位置。每当热点事件发生,微博热搜总是率先登场,成为众人瞩目的焦点。
python迷3016
2025/03/27
1100
python爬取微博关键词搜索帖子,并封装成界面软件,适合文科生
「Python爬虫系列讲解」十四、基于开发者工具 Network 的数据抓包技术
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息 「Python爬虫系列讲解」六、Python 数据库知识 「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取 「Python爬虫系列讲解」八、Selenium 技术 「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识 「Python爬虫系列讲解」十、基于数据库存储的 Selenium 博客爬虫 「Python爬虫系列讲解」十一、基于登录分析的 Selenium 微博爬虫 「Python爬虫系列讲解」十二、基于图片爬取的 Selenium 爬虫 「Python爬虫系列讲解」十三、用 Scrapy 技术爬取网络数据
荣仔_最靓的仔
2021/02/02
2.2K0
「Python爬虫系列讲解」十四、基于开发者工具 Network 的数据抓包技术
根据话题爬取微博与评论
思路阐述 微博获取 weibo.com获取微博url、用户名称以及微博内容等信息 进一步根据用户名称在weibo.com中进行用户url获取 根据构建的用户url在weibo.cn中爬取微博发布者的信息 微博评论获取 根据上面获取的微博标识,构建weibo.cn中对应微博的地址 根据正则表达式获取评论内容 完整代码 # -*- coding: utf-8 -*- # @Time : 2021/12/8 10:20 # @Author : MinChess # @File : weibo.py # @So
MinChess
2022/12/26
4670
如何通过python爬虫来全自动抢微博红包?!
作者:admin IDF实验室 http://blog.idf.cn/2015/02/programming-of-grabing-red-envelopes/ 背景大家都懂的,要过年了,正是红包满天飞的日子。正巧前两天学会了Python,比较亢奋,就顺便研究了研究微博红包的爬取,为什么是微博红包而不是支付宝红包呢,因为我只懂Web,如果有精力的话之后可能也会研究研究打地鼠算法吧。 因为本人是初学Python,这个程序也是学了Python后写的第三个程序,所以代码中有啥坑爹的地方请不要当
机器学习AI算法工程
2018/03/13
2.9K0
如何通过python爬虫来全自动抢微博红包?!
如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
甩锅の声明 1.本数据节选自新浪热门微博评论,不代表本人任何观点 2.本人不接受任何非技术交流类批评指责(夸我可以) 3.本次分析结果因技术问题存在一定误差(是引入的包的问题,不是我的) 4.本次选取热门微博为半个月以前的(翻译一下:热点已经冷了,我只是个写教程的) 4.顶锅盖逃 继上次更完“国庆去哪儿”文之后,被好多编程相关的公众号翻了牌子_(:зゝ∠)_,让我过了一把v的瘾,也让我更加努力的想要装(消音)。 在我埋头学习mysql、scrapy、django准备下一波吹水的时候,python交友群里有
机器学习AI算法工程
2018/03/15
3.2K0
如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
推荐阅读
相关推荐
一个爬取用户所有微博的爬虫,还能断网续爬那种
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验