面试题 02.06. 回文链表
面试题 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. 回文链表相关推荐
- LeetCode Algorithm 面试题 02.06. 回文链表
面试题 02.06. 回文链表 Ideas 这题当时左神也讲过,用的是快慢指针,不过感觉好麻烦,不如直接遍历链表,把元素值存到数组,然后判断是不是回文数组就OK了. Code C++ class So ...
- 程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)
1. 题目 编写一个函数,检查输入的链表是否是回文的. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你 ...
- 判断字符串_python实现--判断回文字符串、回文链表、回文数
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...
- python判断字符串回文_python实现--判断回文字符串、回文链表、回文数
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构 Python系列教程,免费获取,遇到bug及时反馈 ...
- LeetCode每日一题:回文链表(No.234)
题目:回文链表 请判断一个链表是否为回文链表. 复制代码 示例: 输入: 1->2 输出: false输入: 1->2->2->1 输出: true 复制代码 思考: 先用快慢 ...
- 链表-回文链表(复制+双指针法)
题意: 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 思路: 这里如果是数组列表 ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
- python回文链表_leetcode链表之回文链表
序 本文主要记录一下leetcode链表之回文链表 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2-> ...
- 34. Leetcode 234. 回文链表 (链表-双指针)
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表.如果是,返回 true :否则,返回 false .示例 1:输入:head = [1,2,2,1] 输出:true 示例 2:输入: ...
最新文章
- 一文看懂5G和AI融合的5个要点
- 软件项目组织管理(一)项目管理概述
- 除了写代码,程序员还能做哪些副业呢?
- C# 将数据导出到Excel汇总(转)
- live2d手机制作软件_Live2D制作软件
- 十字链表法和邻接多重表法
- vue json对象转数组_vue面试题汇总
- x86汇编指令集大全(带注释)
- 使用python解析pdf文件
- 基于python3.5+opencv+windowsAPI图像识别实现的连连看外挂
- 部署超级账本fabric区块可视化浏览器
- 计算机毕业设计Java互联网校园家教兼职平台(源码+系统+mysql数据库+lw文档)
- php strtotime 2038 时间戳,PHP的strtotime计算2038年以上日期的时间戳错误
- 项目管理-挣值分析方法学习总结
- 石墨烯粉末, 是否导电?
- 在 Create-React-App 中使用 TypeScript(汉化)
- Linux开机自启动
- 高等数学笔记-苏德矿-第九章-重积分(Ⅰ)-二重积分
- pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算
- [Python]... 和pass
热门文章
- 微服务升级_SpringCloud Alibaba工作笔记0012---Gateway常用的Filter
- 项目思考001---近期这个电台购物项目的一点点思考
- RabbitMq学习笔记005---登录rabbitmq报错User can only log in via localhost
- resnet 50 网络分析
- kafka使用问题解决
- vscode制表位_vscode 常用配置
- 嵌入式操作系统内核原理和开发(中断)
- java成绩前五名的代码_一个 JAVA 程序,实现输出考试成绩的前三名
- php调用mysql中文变量_用php调用MySQL里的数据,为什么汉字都变成了问号?在线等...
- radiobutton怎么变成竖排_民间修谱悄然兴起,花120万元修家谱,你怎么看?【饮茶论道】...