1def isPalindrome(head):
2 slow, fast = head, head
3 while fast and fast.next:
4 slow = slow.next
5 fast = fast.next.next
6 prev, curr = None, slow
7 while curr:
8 nxt = curr.next
9 curr.next = prev
10 prev = curr
11 curr = nxt
12 p1, p2 = head, prev
13 while p2:
14 if p1.val != p2.val:
15 return False
16 p1 = p1.next
17 p2 = p2.next
18 return True