Your question is Palindrome Linked List Coding. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
NASA Jet Propulsion Laboratory telemetry pipelines may represent an ordered sequence of readings as a singly linked list. Given the head of such a list, determine whether the sequence reads identically from left to right and right to left.
Return True if the list is a palindrome and False otherwise. Your solution should run in linear time and use constant auxiliary space. You may temporarily modify the list, but restore its original structure before returning.
Implement is_palindrome(head), where head is either None or a ListNode. Each node has an integer val field and a next field containing the next node or None. The function returns a Boolean.
For the test cases below, the input array lists node values from head to tail. The test harness constructs the corresponding linked list before calling the function.
def is_palindrome(head):