请判断一个链表是否为回文链表。
示例 1:
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
var isPalindrome = function(head) {
var p = head,
q = null,
initVal = head;
while(head) {
var tmp = head;
head = head.next;
tmp.next = q;
q = tmp;
}
if(JSON.stringify(initVal) === JSON.stringify(q)) return true;
return false;
};
思路是先把链表反转然后stringify,和之前的链表进行对比。但是leetcode在使用stringify时会报溢出错误,这个暂时不太清楚什么原因。下面列出网友的另一种思路:
var isPalindrome = function(head) {
let first = '';
let second = '';
while (head) {
first = first + head.val;
second = head.val + second;
head = head.next;
}
return first === second;
};
网友评论