234. Palindrome Linked List

Easy


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

Example 1:

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

Example 2:

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

Constraints:

  • The number of nodes in the list is in the range [1, 105].

  • 0 <= Node.val <= 9

Follow up: Could you do it in O(n) time and O(1) space?

class Solution:
    def isPalindrome(self, head: Optional[ListNode]) -> bool:
        s = ""
        t = ""
        def recursion(head):
            nonlocal s
            nonlocal t
            if not head:
                return 
            s += str(head.val)
            recursion(head.next)
            t += str(head.val)
        recursion(head)
        return s == t
        

Last updated