15 lines
441 B
Python
15 lines
441 B
Python
# https://leetcode.com/problems/palindrome-linked-list/discuss/64500/11-lines-12-with-restore-O(n)-time-O(1)-space
|
|
def isPalindrome(head) -> bool:
|
|
rev = None
|
|
slow = fast = head
|
|
while fast and fast.next:
|
|
fast = fast.next.next
|
|
rev, rev.next, slow = slow, rev, slow.next
|
|
|
|
if fast:
|
|
slow = slow.next
|
|
|
|
while rev and rev.val == slow.val:
|
|
rev = rev.next
|
|
slow = slow.next
|
|
return not rev |