题目描述

给你一个单链表的头节点 head,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false。

示例 1: 输入:head = [1,2,2,1]
输出:true

示例 2: 输入:head = [1,2]
输出:false

思路&js代码

1、数组

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