2

I am trying to solve a problem of LinkedList on leetcode in javascript language but out of 86 test cases 74 cases are passed but at 75 I am getting an error Output Limit Exceeded.

Problem:

Given the head of a singly linked list, return true if it is a palindrome.

Examples:

Input: head = [1,2,2,1]
Output: true

Input: head = [1,2]
Output: false

My code:

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,...]

I am not able to understand why I am getting a Limit exceeded error? Is it due to too many inputs? Or Issue is in my code? If the issue is with inputs then How can I solve this problem in Javascript?

Barmar
  • 741,623
  • 53
  • 500
  • 612
Harsh Mishra
  • 862
  • 3
  • 15
  • 29

1 Answers1

1

console.log is trapped by the LeetCode framework, and as your first loop calls it in every iteration, this is slowing down the process significantly.

Just remove the console.log.

As a follow-up: try to find a solution where you do not copy every value into an array, which requires O(n) extra space. Instead, try to do it with O(1) extra space.

trincot
  • 317,000
  • 35
  • 244
  • 286