Estoy tratando de resolver un problema de LinkedList en leetcode en lenguaje javascript, pero de 86 casos de prueba, se aprobaron 74 casos, pero en 75 recibo un error Output Limit Exceeded .
Problema:
Given the head of a singly linked list, return true if it is a palindrome.Ejemplos:
Input: head = [1,2,2,1] Output: true Input: head = [1,2] Output: falseMi código:
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,2,9,5,2 ,9,7,4,8,...]
No puedo entender por qué recibo un Limit exceeded error . ¿Se debe a demasiadas entradas? ¿O el problema está en mi código? Si el problema es con las entradas, ¿cómo puedo resolver este problema en Javascript?
console.log está atrapado por el marco LeetCode, y como su primer ciclo lo llama en cada iteración, esto está ralentizando el proceso significativamente.
Simplemente elimine el console.log .
Como seguimiento: intente encontrar una solución en la que no copie todos los valores en una matriz, lo que requiere O (n) espacio adicional. En su lugar, intente hacerlo con O(1) espacio adicional.