# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 the head # @return bool布尔型 # class Solution: def isPail(self , head: ListNode) -> bool: # write code here if not head or not head.next: return True slow, fast = head, head while fast and fast.next: slow = slow.next fast = fast.next.next second_half = self.ReverseList(slow) p1, p2 = head, second_half while p2: if p1.val != p2.val: return False p1 = p1.next p2 = p2.next return True def ReverseList(self, head: ListNode) -> ListNode: prev = None curr = head while curr: next_node = curr.next curr.next = prev prev = curr curr = next_node return prev