【easy】234. Palindrome Linked List

ques: 判断一个链表是否回文 Could you do it in O(n) time and O(1) space?

method:先将链表分为两部分,将后半部分反转,最后从前往后判断是否相等。

topic: 链表,链表反转

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */  class Solution {
public:bool isPalindrome(ListNode *head) { //input check  abcba abccba  if(head == NULL || (head&&head->next==NULL)) return true;  ListNode *middle = partition(head);  middle = reverse(middle);  while(head!=NULL && middle!=NULL) {  if(head->val != middle->val) return false;  head = head->next;  middle = middle->next;  }  return true;  }  
private: ListNode* partition(ListNode *head) {  ListNode* p = head;  while(p&&p->next!=NULL && p->next->next!=NULL) {  p = p->next->next;  head = head->next;  }  p = head->next;  head->next = NULL;  return p;  }  
private: ListNode* reverse(ListNode *head) {  if(head==NULL || head->next==NULL) return head;  ListNode* pre = head;  ListNode* cur = head->next;  pre->next = NULL;  ListNode* nxt = NULL;  while(cur!=NULL) {  nxt = cur->next;  cur->next = pre;  pre = cur;  cur = nxt;  }  return pre;  }  
};

 

转载于:https://www.cnblogs.com/sherry-yang/p/8245187.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux qt 添加.so,Linux环境下qt/qt creator添加OpenCV的配置

第一次使用qtcreator,我是做图像处理的,想在Ubuntu下将qtcreator和opencv的环境配置起来,着资料和尝试配置,耗费了我一个上午和一个下午,终于最终摸出了门路,以供大家分享。第一步:下载和安装op…

算法纲要

基本 枚举、贪心、递归、分治、递推、模拟 STL(pair、vector、set、map、queue、string、algorithm) 构造、位运算、常数优化 数据结构 队列、堆、栈、链表 排序(插入、冒泡、快速、归并、堆、桶、基数) 二分查找、散列表 并查集、…

Auto Layout 和 Constraints

文章修改 2月1日:添加使用约束、编辑约束和iOS特性三个部分2月24日:根据自己的理解,修改iOS特性部分的内容 自动布局Auto Layout Auto Layout,通过设置在View上的约束,动态计算视图层次结构中所有的View的尺寸和位置。…

哪个linux桌面有电池显示,(求助!!!)进ubuntu后桌面只显示左上角!(已解决)...

jonathan303 于 2008-10-24 18:23:45发表:G卡 好说了 因为你们有配置你的显卡文件 你在系统里-》有一个显卡的调节程序, 你打开的时候里面没有显示, 你进行一下操作:sudo dpkg-reconfigure xserver-xorg一路默认cltaltbackspace重启X执行步骤…

Linux NTP时间服务器

NTP 时间服务器 ntp也是一种协议 ntp软件(支持ntp协议) CentOS6自带 CentOS7需要安装 chrony软件(支持ntp协议) CentOS7自带 安装ntp CentOS6系统自带ntp,CentOS7需要自己安装 [rootm02 ~]# yum -y install ntp [ro…

Host 'xxx' is not allowed to connect to this MySQL server.

mysql开启远程连接 今天在服务器安装了mysql,准备用mysqlguitools远程登录的时候出错,提示:Host xxx is not allowed to connect to this MySQL server。网上找了一些资料,是mysql未开启mysql远程访问权限导致。 记录解决方案供以…

tkinter的GUI设计:界面与逻辑分离(三)-- 多页面

知识点: 使用 tkinter.Frame.tkraise() 函数去提升当前 tkinter.Frame 的 z 轴顺序,使得多个 tkinter.Frame 的可见性得以切换 本文基于:win7 python34 1 2 3 4 5 import matplotlib matplotlib.use("TkAgg")from matplotlib.back…

linux软件证券,linux

1.说明在*nix环境下,经常通过源码安装软件。./configure make make install基本上都是定式了。本文对于configure的基本原理进行阐述,并借助http://concurrencykit.org/开源包的configure文件,对于实际的运行过程进行分析。2.configure基本背…

0x08算法设计与分析复习(二):算法设计策略-回溯法2

参考书籍:算法设计与分析——C语言描述(第二版) 算法设计策略-回溯法 子集和数 问题描述 已知n个不同的正数wi(0≤i≤n−1)的集合,求该集合的所有满足条件的子集,使得每个子集中的正数之和等于另一个给定的正数M。 回溯…

Android源码解析--SwipeMenuListView仿QQ聊天左滑

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50612714 绪论: 好久没写博客了,最近比较懒,不想写博客,但是在看书,看一些Android进阶的书&#…

UVA 125 Numbering Paths

题意 给出方向&#xff08;有向&#xff09;然后判断从一个点到另一个点的方案数。如果有无数条那么对应位置置为-1 直接先dp处理出来。dp[i][j] sum(dp[i][k]*dp[k][j]) 同时如果两点之间有无限条路径。那么这两点之间必然有一环存在。有f[k][k]!0 #include <map> #…

linux 循环执行ip停止服务,java调用远程服务器的shell脚本以及停止的方法实现

最近接了个需求&#xff0c;要求远程调shell脚本&#xff0c;你没听错&#xff01;&#xff01;&#xff01;需求就一句话&#xff0c;咱是谁&#xff0c;咱是优秀的开发选手。考虑再三&#xff0c;有两种实现方式&#xff1a;方案一&#xff1a;脚本所在服务器安装一个客户端&…

mysql-防止XSS攻击

1,防止Xss攻击 数据库查询数据操作,为了防止注入,要执行参数化查询,也就是直接利用execute直接进行sql语句的执行, 因为exexute本身就有接收语句变量的参数位, execute()函数本身就有接受SQL语句变量的参数位&#xff0c;只要正确的使用&#xff08;直白一点就是&#xff1a;使…

java main方法背后的故事?(转)

jvm java 看似一种语言&#xff0c;实则一个巨大的体系的王国&#xff0c;开发这么多年了&#xff0c;还是没有搞懂,我以为我懂了&#xff0c;可是过了一段时间又忘了&#xff0c;所以说还是没懂 1、main方法说起 编译完我们的java文件后&#xff0c;需要有个一含有main方法的类…

亲历腾讯WEB前端开发三轮面试经历及面试题

【一面】~110分钟 2014/09/24 11:20 星期三 进门静坐30分钟做题。 填空题大题问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理 延时 display position XMLHttpRequest 正则Jquery绑定事件 cookie >>大题BOM浏览器…

Redis的数据结构之字符串

原文&#xff1a;http://blog.java1234.com/blog/articles/316.html 五种数据类型&#xff1a; 字符串&#xff08;String&#xff09; 字符串列表&#xff08;list&#xff09; 有序字符串集合&#xff08;sorted set&#xff09; 哈希&#xff08;hash&#xff09; 字符串集合…

linux搜索日志组合条件,find查找

find查找是生产中最常见的日志查找工具下面看看它的用法基本用法&#xff1a;find 查找路径 查找标准 查找到以后的处理动作查找路径&#xff1a;需要被查找的文件所在的路径&#xff0c;一定是个目录&#xff0c;默认情况下为当前的目录查找的标准&#xff1a;查找的…

常用的JPA标记 (转)

Table Table用来定义entity主表的name&#xff0c;catalog&#xff0c;schema等属性。 元数据属性说明&#xff1a; name: 表名catalog: 对应关系数据库中的catalogschema&#xff1a;对应关系数据库中的schemaUniqueConstraints:定义一个UniqueConstraint数组&#xff0c;指定…

JavaBean技术的一些讲解

JavaBean: 由于原先的jsp的html代码和css代码以及java代码都是写在一起的&#xff0c;所以看起来就比较冗余&#xff0c;同时 也体现不了javaBean中面向对象的思想的{当然可以同过jstl标签库以及mvc框架来脱离java代码&#xff0c;但是这也是必不可少的} 在这里对于Javabean的一…

linux网卡名称乱编,小斗CentOS7.x网卡名称错乱、及网卡启动失败。

本帖最后由 Zack 于 2018-5-31 13:39 编辑最近在搞CentOS7装机的事情&#xff0c;在此记录期间遇到关于网卡方面的坑&#xff0c;整理分享下&#xff0c;以免大家继续再踩。一、在CentOS7默认装完系统之后网卡名称一改之前的名称习惯&#xff0c;网卡名称为enoxxxxx(之前命名规…