# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 the head
# @return bool布尔型
#
class Solution:
    def head_List(self,Phead:ListNode)->List:
        if Phead is None:
            return None
        head=Phead
        list1=[]
        while head:
            list1.append(int(head.val))
            head=head.next
        return list1    

    def reseve_ListNode(self,head:ListNode)->ListNode:
        if head is None:
            return None
        Phead=head
        list1=[]
        while Phead:
            list1.append(int(Phead.val))
            Phead=Phead.next
        list1=list1[::-1]
        cur=head
        for i in list1:
            cur.val=i
            cur=cur.next
        return head


    def isPail(self , head: ListNode) -> bool:
        # write code here
        if head is None:
            return False
        list1=self.head_List(head)
        head1=self.reseve_ListNode(head)
        list2=self.head_List(head1)
        if list1==list2:
            return True
        else:
            return False    
        # if head is None:
        #     return False
        # list1=self.head_List(head)
        # count=(len(list1))//2
        # for i in range(count+1):
        #     if list1[i]!=list1[len(list1)-1-i]:
        #         return False
        # return True