var isPalindrome = function(head) {
// 定义一个空数组来存储数据
let vals = [];
// 遍历整个链表,将其值加到数组中
while (head !== null) {
vals.push(head.val);
head = head.next;
}
// 头尾元素进行比较,如果不相同则返回false
for (let i = 0, j = vals.length - 1; i < j; i++, j--) {
if (vals[i] !== vals[j]) {
return false;
}
}
return true;
};
复杂度分析
- 时间复杂度:O(n),其中n指的是链表的元素个数
- 空间复杂度:O(n)