将链表地址存储vevctor,然后找到中点,将中点数据逆转存储在numtemp2,通过对比容器numtemp和numtemp2元素是否相等,相等就返回true,否则返回false.[运行时间24ms,内存损耗为14.7MB]
bool isPalindrome(ListNode* head)
{
vector<ListNode*> num;
while(head)
{
num.push_back(head);
head=head->next;
}
int mid=num.size()/2;
vector<int> numtemp;
vector<int> numtemp2;
for(int i=0;i<mid;i++)
{
numtemp.push_back(num[i]->val);
}
for(int i=num.size()-1;i>=mid;i--)
{
numtemp2.push_back(num[i]->val);
}
for(int i=0;i<mid;i++)
{
if(numtemp[i]!=numtemp2[i])
{
return false;
}
}
return true;
}