Leecode 请判断一个链表是否为回文链表。
Posted go大鸡腿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leecode 请判断一个链表是否为回文链表。相关的知识,希望对你有一定的参考价值。
题目
输入: 1->2->2->1
输出: true
代码
class Solution {
public boolean isPalindrome(ListNode head) {
List<Integer> list = new ArrayList<>();
list.add(head.val);
if(head.next==null){
return true;
}
while(head.next!=null){
head=head.next;
list.add(head.val);
}
//偶数
if(list.size()%2==0){
int i = list.size()/2-1;
int j = list.size()/2;
while(i>=0&&j<=list.size()-1){
if(!list.get(i).equals(list.get(j))){
return false;
}
i--;j++;
}
return true;
}
//奇数
int i = list.size()/2-1;
int j = list.size()/2+1;
while(i>=0&&j<=list.size()-1){
if(!list.get(i).equals(list.get(j))){
return false;
}
i--;j++;
}
return true;
}
}
改进
上面的代码分奇数偶数的情况,看下官方的解答是使用双指针进行遍历
以上是关于Leecode 请判断一个链表是否为回文链表。的主要内容,如果未能解决你的问题,请参考以下文章