#include <iostream>
#include<stack>
using namespace std;
struct node{
int data;
struct node* next;
};
struct node* createnode(int val)
{
struct node* p=(struct node*)malloc(sizeof(struct node));
p->data=val;
p->next=NULL;
return p;
}
int palindrome(struct node* head)
{
struct node* cur=head;
if(head==NULL)
return 0 ;
stack<int> s;
while(cur!=NULL)
{
s.push(cur->data);
cur=cur->next;
}
while(head)
{
int c=s.top();
s.pop();
if(head->data==c)
{
head=head->next;
}
else
{
return 0;
}
}
return 1;
}
int main() {
struct node* head=createnode(1);
head->next=createnode(1);
head->next->next=createnode(2);
head->next->next->next=createnode(1);
int res=palindrome(head);
//cout<<isalpha;
cout<<res;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxzdGFjaz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IG5vZGV7CgkgICAgICAgICBpbnQgZGF0YTsKCSAgICAgICAgIHN0cnVjdCBub2RlKiBuZXh0Owp9OwpzdHJ1Y3Qgbm9kZSogY3JlYXRlbm9kZShpbnQgdmFsKQp7CglzdHJ1Y3Qgbm9kZSogcD0oc3RydWN0IG5vZGUqKW1hbGxvYyhzaXplb2Yoc3RydWN0IG5vZGUpKTsKCXAtPmRhdGE9dmFsOwoJcC0+bmV4dD1OVUxMOwoJcmV0dXJuIHA7Cn0KaW50IHBhbGluZHJvbWUoc3RydWN0IG5vZGUqIGhlYWQpCnsKCXN0cnVjdCBub2RlKiBjdXI9aGVhZDsKCWlmKGhlYWQ9PU5VTEwpCglyZXR1cm4gMCA7CglzdGFjazxpbnQ+IHM7Cgl3aGlsZShjdXIhPU5VTEwpCgl7CgkJcy5wdXNoKGN1ci0+ZGF0YSk7CgkJY3VyPWN1ci0+bmV4dDsKCX0KCXdoaWxlKGhlYWQpCgl7CgkJaW50IGM9cy50b3AoKTsKCQlzLnBvcCgpOwoJCWlmKGhlYWQtPmRhdGE9PWMpCgkJewoJCQloZWFkPWhlYWQtPm5leHQ7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiAwOwoJCX0KCX0KCXJldHVybiAxOwp9CgkKCmludCBtYWluKCkgewoJc3RydWN0IG5vZGUqIGhlYWQ9Y3JlYXRlbm9kZSgxKTsKCWhlYWQtPm5leHQ9Y3JlYXRlbm9kZSgxKTsKCWhlYWQtPm5leHQtPm5leHQ9Y3JlYXRlbm9kZSgyKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQ9Y3JlYXRlbm9kZSgxKTsKCWludCByZXM9cGFsaW5kcm9tZShoZWFkKTsKCS8vY291dDw8aXNhbHBoYTsKCWNvdXQ8PHJlczsKCXJldHVybiAwOwp9