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

示例 1:

输入: 1->2
输出: false

示例 2:

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

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

一个最暴力的做法,遍历一次,内容保存在数组内,然后判断是否回文。

遇到一个比较严重的问题需要记录一下,使用Vector类时,设定的类型为Integer,必须使用Equals函数来判断两数是否相等,使用==则不行。奇怪的是,只有部分判断是错误的。

查阅百度,发现了问题所在:

这种行为差异的原因是JVM维护Integer范围为-128到127 的对象的缓存(可以使用系统属性“java.lang.Integer.IntegerCache.high”

或JVM来覆盖上限值参数“-XX:AutoBoxCacheMax = size”)。对于此范围内的值,Integer.valueOf()将返回缓存的值,而不是创建一个新的值。

所以,虽然没有达到题目的进阶要求使用O(1)的空间复杂度完成问题,但还是学习到了新的知识点。

代码如下:

 class Solution {
public boolean isPalindrome(ListNode head) {
Vector<Integer> vector=new Vector<>();
if(head==null)
return true;
else
vector.add(head.val);
while(head.next!=null)
{
vector.add(head.next.val);
head=head.next;
}
int left=0,right=vector.size()-1;
while(left<=right)
{
System.out.println(vector.get(left)+"***"+vector.get(right));
if(vector.get(left).equals(vector.get(right)))
{
left++;
right--;
continue;
}
else
return false;
}
return true;
}
}

最新文章

  1. 浅谈HTTP中Get与Post的区别(转)
  2. MVC UpdateModel的未能更新XXXXX的类型模型
  3. c# 正则表达式分组
  4. Linux下查看mysql、apache是否安装,安装,卸载等操作
  5. Axure RP介绍
  6. iOS问题处理:如何在Mac下显示Finder中的所有文件
  7. laravel 自定义命令
  8. Code for the Homework1 改进
  9. mysql之select+五种子句的理解
  10. PHP中长连接的实现
  11. Python 3中bytes和str的分别
  12. 【Robot Framework 介绍】总纲
  13. jquery不限图片焦点图
  14. 删除DriverStore\FileRepository文件夹后,设备驱动无法安装,提示“没有为设备信息集或元素选择驱动程序(代码 28)”的解决办法
  15. error C4996: &#39;strcpy&#39;: This function or variable may be unsafe.
  16. 与班尼特&#183;胡迪一起攻破浮空城 (HZNU-2264)
  17. radio选中与不选中
  18. MySQL下创建数据库以及授权用户
  19. 委托、事件、匿名方法、Lambda
  20. Python--001

热门文章

  1. Python开发【第三篇】数据类型
  2. i春秋DMZ大型靶场实验(三)内网转发DMZ2
  3. java中常见的字符串API
  4. ajax跨域简单请求与复杂请求
  5. unity发布ios高通AR的问题
  6. Ubuntu 16 server 安装 tensorflow-GPU
  7. 宋宝华:关于Ftrace的一个完整案例
  8. C语言I—2019秋作业01
  9. 【POJ3744】Scout YYF I
  10. Java类、对象、变量、方法