力扣题目:LCR 027. 回文链表 - 力扣(LeetCode)
给定一个链表的 头节点 head
,请判断其是否为回文链表。
如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。
示例 1:
输入: head = [1,2,3,3,2,1] 输出: true
示例 2:
输入: head = [1,2] 输出: false
提示:
- 链表 L 的长度范围为
[1, 10^5]
0 <= node.val <= 9
进阶:能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
算法如下
class Solution {
public boolean isPalindrome(ListNode head) {
List<Integer> list=new ArrayList<>();
ListNode curP=head;
if(curP==null)
{
return false;
}else {
//赋值,进行判断
while (curP!=null)
{
list.add(curP.val);
curP=curP.next;
}
//双指针
int low=0;
int high=list.size()-1;
while (low<=high)
{
if(list.get(low)!=list.get(high))
{
return false;
}
low++;
high--;
}
}
return true;
}
}