/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 the head
 * @return bool布尔型
 */
#include <stdbool.h>
bool isPail(struct ListNode* head ) {
    // write code here
    struct ListNode* temp=NULL;
    struct ListNode* p=head;
    if(p==NULL && p->next==NULL)
        return true;
    while(p)        //创建一个新的链表,然后比较
    {
        struct ListNode* temp1=malloc(sizeof(struct ListNode));
        temp1->val=p->val;
        temp1->next=NULL;
        p=p->next;      //创建新结点
        if(temp==NULL)
        {
            temp=temp1;
        }
        else 
        {
            temp1->next=temp;
            temp=temp1;
        }
    }
    p=head;
    while(temp)
    {
        if(temp->val != p->val)
            return false;
        temp=temp->next;
        p=p->next;
    }
    return true;
}

头插构造新链表与目标链表比较即可