/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */

     bool judge(vector<int>&a)
     {
        int n=0,m=a.size()-1;
        while(n<=m)
        {
            if(a[n]!=a[m]) return false;
            n++;
            m--;
        }
        return true;
     }
    bool isPail(ListNode* head) {
        // write code here
        if(!head->next) return true;

        ListNode*cur=head;
        vector<int> a;
        while(cur)
        {
            a.push_back(cur->val);
            cur=cur->next;
        }
        delete cur;
        return judge(a);
    }
};