Palindrome Linked List (LC-0234)

class Solution:
    def isPalindrome(self, head):
        slow = fast = head

        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next

        prev = None
        curr = slow
        while curr:
            curr.next, prev, curr = prev, curr, curr.next
        
        while prev:
            if prev.val != head.val:
                return False
            prev = prev.next
            head = head.next
        
        return True