![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/af35fb5c08bb664dc79363b7bed6d832.png)
方法1
分析
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9b00bb6d8e80e0e99466449f8d14889f.png)
代码
class PalindromeList {
public:
ListNode* findmid(ListNode*A)
{
ListNode*fast=A;
ListNode*slow=A;
while(fast && fast->next)
{
fast=fast->next->next;
slow=slow->next;
}
return slow;
}
ListNode* reverse(ListNode*mid)
{
ListNode*cur=mid,*newhead=NULL;
while(cur)
{
ListNode*next =cur->next;
cur->next=newhead;
newhead=cur;
cur=next;
}
return newhead;
}
bool chkPalindrome(ListNode* A) {
ListNode* mid=findmid(A);
ListNode* head1=reverse(mid);
ListNode* head2=A;
while(head1 && head2)
{
if(head1->val!=head2->val)
return false;
head1=head1->next;
head2=head2->next;
}
return true;
}
};
方法2
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5b9cbfcadff7e954a74567578690a1f3.png)