回文链表

2023-09-24 14:58:26 浏览数 (1)

题目描述

请判断一个链表是否为回文链表。

示例 1:

输入: 1->2 输出: false

示例 2:

输入: 1->2->2->1 输出: true

进阶:

你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

解题思路

通过将每个链表节点值存入nodeArr数组中,最后通过双指针一正一反进行比较。

代码语言:javascript复制
const isPalindrome = function(head) {
    let nodeArr = []

    while(head) {
        nodeArr.push(head.val)
        head = head.next
    }
    
    for(let i = 0, j = nodeArr.length - 1; j >= i; i  , j--)
        if (nodeArr[i] !== nodeArr[j]) return false

    return true
};

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-linked-list

0 人点赞