题目描述:
请判断一个链表是否为回文链表。
示例 1:
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
解题思路:
将其存入一个可变数组中,然后使用一对前后指针,来判断该链表是否是回文链表。当其对应的两个元素的值不等时,则说明其不是回文链表。
时间复杂度O(N)
空间复杂度O(N)
代码:
class Solution {
public boolean isPalindrome(ListNode head) {
List<Integer> list = new ArrayList<>();
while(head != null){
list.add(head.val);
head = head.next;
}
int l = 0;
int r = list.size() - 1;
while(l < r){
if(list.get(l) != list.get(r)){
return false;
}
l++;
r--;
}
return true;
}
}