【leetcode】剑指 Offer II 027. 回文链表(js实现)

1. 题目

剑指 Offer II 027. 回文链表
【leetcode】剑指 Offer II 027. 回文链表(js实现)_第1张图片

2. 思路

  1. 遍历链表,将链表节点的值存入到数组中;
  2. 对数组做回文判断即可

3. 代码实现

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @return {boolean}
 */
var isPalindrome = function(head) {
    // 1. 遍历链表,将值存入一个数组
    let tmp = head, vals = []
    while (tmp !== null) {
        vals.push(tmp.val)
        tmp = tmp.next
    }
    // 2. 判断数组是否为回文
    for (let i = 0, j = vals.length - 1; i < j; i++, j--) {
        if (vals[i] !== vals[j]) return false
    }
    return true
};

4. 参考

方法一:将值复制到数组中后用双指针法

你可能感兴趣的:(链表,leetcode,javascript)