我正试图解决LinkedList
在leetcode上的问题,但在86
测试用例中,74
用例通过了,但在75
,我得到了一个错误Output Limit Exceeded
。
问题:
Given the head of a singly linked list, return true if it is a palindrome.
例子:
Input: head = [1,2,2,1]
Output: true
Input: head = [1,2]
Output: false
我代码:
let array = [];
let list = head;
while (list) {
array.push(list.val)
console.log("array1", array)
list = list.next;
}
let list2 = head;
while (list2) {
let out = array.pop()
if (out === list2.val) {
list2 = list2.next;
} else {
return false
}
}
return true
Last executed input:
[3、8、9、3、2,8,9,1,8,9,9日8日5、2、5、4、4、4、3、9、7、5、0、5、8、6、3、3、8 0,7日,3、7、7、1、1、1、7 0,2,8,1,8日,7日,9日,5日,2日,9日,7日,4,8日…]
我不明白为什么我得到一个Limit exceeded error
?是因为输入太多吗?还是问题在我的代码中?如果问题是输入,那么我如何在Javascript中解决这个问题?
console.log
被LeetCode框架捕获,并且当您的第一个循环在每次迭代中调用它时,这会显着减慢进程。
把console.log
去掉。
作为后续:尝试找到一个不将每个值复制到数组中的解决方案,这需要O(n)额外的空间。相反,请尝试使用O(1)个额外空间。