回文链表
请判断一个链表是否为回文链表。
示例 1:
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
解题思路
链表转数组法
1.将链表转化为数组,利用循环遍历链表,将链表每个节点的值推入数组中,判断回文链表即为判断回文数组。
2.标记数组的left,和right,循环判断arr[left]是否和arr[right]是否相等。
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
*/
var isPalindrome = function(head) {
var curr = head
var arr = []
while(curr != null){
arr.push(curr.val)
curr = curr.next
}
var left = 0
var right = arr.length-1
while(left < right){
if(arr[left] != arr[right]){
return false
}
left++
right--
}
return true
};