题目描述
解题思路
我的思路很简单,直接遍历链表,把数据存储到数组中,然后再从数组两端往中间逐个对比。
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
bool isPalindrome(ListNode* head) {
int a[100000]={0},length=0;
ListNode* p=new ListNode(0,head);
while(p->next){
p=p->next;
a[length]=p->val;
length++;
}
for(int i=0,j=length-1;i<j;i++,j--)
if(a[i]!=a[j]) return false;
return true;
}
};