面试题 02.06. 回文链表

编写一个函数,检查输入的链表是否是回文的。

示例 1:

输入: 1->2
输出: false 

进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

思路:因为要求空间复杂度O(1), 所以需要找出链表终点,用一个快指针和一个慢指针,快指针每次跑2步,慢指针每次跑1步, 遍历的时候顺便把前半部分链表颠倒。最后判前后两个断链表是否值是否相同。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool isPalindrome(ListNode* head) {if(head==NULL || head->next==NULL) return true;if(head->next->next==NULL) return head->val == head->next->val;//只有两个数//找中点并且翻转前面的链表ListNode *pre=NULL, *cur=NULL, *nex=head;while(head->next && head->next->next){head = (head->next)->next;cur = nex;nex = cur->next;cur->next = pre;pre = cur;}if(head->next!=NULL){//再多走一步cur = nex;nex = cur->next;cur->next = pre;pre = cur;}else{nex = nex->next;}while(cur && nex){if(cur->val!=nex->val) return false;cur = cur->next;nex = nex->next;}return true;}
};

面试题 02.06. 回文链表相关推荐

  1. LeetCode Algorithm 面试题 02.06. 回文链表

    面试题 02.06. 回文链表 Ideas 这题当时左神也讲过,用的是快慢指针,不过感觉好麻烦,不如直接遍历链表,把元素值存到数组,然后判断是不是回文数组就OK了. Code C++ class So ...

  2. 程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)

    1. 题目 编写一个函数,检查输入的链表是否是回文的. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你 ...

  3. 判断字符串_python实现--判断回文字符串、回文链表、回文数

    所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...

  4. python判断字符串回文_python实现--判断回文字符串、回文链表、回文数

    所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构 Python系列教程,免费获取,遇到bug及时反馈 ...

  5. LeetCode每日一题:回文链表(No.234)

    题目:回文链表 请判断一个链表是否为回文链表. 复制代码 示例: 输入: 1->2 输出: false输入: 1->2->2->1 输出: true 复制代码 思考: 先用快慢 ...

  6. 链表-回文链表(复制+双指针法)

    题意: 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 思路: 这里如果是数组列表 ...

  7. 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...

  8. python回文链表_leetcode链表之回文链表

    序 本文主要记录一下leetcode链表之回文链表 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2-> ...

  9. 34. Leetcode 234. 回文链表 (链表-双指针)

    给你一个单链表的头节点 head ,请你判断该链表是否为回文链表.如果是,返回 true :否则,返回 false .示例 1:输入:head = [1,2,2,1] 输出:true 示例 2:输入: ...

最新文章

  1. 一文看懂5G和AI融合的5个要点
  2. 软件项目组织管理(一)项目管理概述
  3. 除了写代码,程序员还能做哪些副业呢?
  4. C# 将数据导出到Excel汇总(转)
  5. live2d手机制作软件_Live2D制作软件
  6. 十字链表法和邻接多重表法
  7. vue json对象转数组_vue面试题汇总
  8. x86汇编指令集大全(带注释)
  9. 使用python解析pdf文件
  10. 基于python3.5+opencv+windowsAPI图像识别实现的连连看外挂
  11. 部署超级账本fabric区块可视化浏览器
  12. 计算机毕业设计Java互联网校园家教兼职平台(源码+系统+mysql数据库+lw文档)
  13. php strtotime 2038 时间戳,PHP的strtotime计算2038年以上日期的时间戳错误
  14. 项目管理-挣值分析方法学习总结
  15. 石墨烯粉末, 是否导电?
  16. 在 Create-React-App 中使用 TypeScript(汉化)
  17. Linux开机自启动
  18. 高等数学笔记-苏德矿-第九章-重积分(Ⅰ)-二重积分
  19. pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算
  20. [Python]... 和pass

热门文章

  1. 微服务升级_SpringCloud Alibaba工作笔记0012---Gateway常用的Filter
  2. 项目思考001---近期这个电台购物项目的一点点思考
  3. RabbitMq学习笔记005---登录rabbitmq报错User can only log in via localhost
  4. resnet 50 网络分析
  5. kafka使用问题解决
  6. vscode制表位_vscode 常用配置
  7. 嵌入式操作系统内核原理和开发(中断)
  8. java成绩前五名的代码_一个 JAVA 程序,实现输出考试成绩的前三名
  9. php调用mysql中文变量_用php调用MySQL里的数据,为什么汉字都变成了问号?在线等...
  10. radiobutton怎么变成竖排_民间修谱悄然兴起,花120万元修家谱,你怎么看?【饮茶论道】...