题目

reverse()和join(),使用数组保存链表每个节点的值,然后判断原数组和反转数组是否相同。

var isPalindrome = function(head) {
  let cur = head;
  let arr = [];
  while(cur){
    arr.push(cur.val);
    cur = cur.next;
  }
  return arr.join('-')===arr.reverse().join('-');
};

双指针,使用数组保存链表每个节点的值,使用双指针判断是否是回文数组。

var isPalindrome = function(head) {
  let cur = head;
  let arr = [];
  while(cur){
    arr.push(cur.val);
    cur = cur.next;
  }
  for(let i = 0, j = arr.length - 1; i < j; i++, j--){
    if(arr[i] !== arr[i])return false;
  }
  return true;
};