题目描述
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
C/C++ 实现
1 、 新建链表,从表头插入,,然后比较两个链表,,,原理较为简单,但是需要额外的内存空间
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Palindrome {
public:
bool isPalindrome(ListNode* pHead) {
// write code here
if(pHead==nullptr)return true;
ListNode *pa=new ListNode(0);
ListNode *list=pa;
ListNode *ph=pHead;
while(pHead!=nullptr){
ListNode *newlist=new ListNode(pHead->val);
newlist->next=