Given a singly linked list, determine if it is a palindrome.
推断一个链表是不是回文的,一个比較简单的办法是把链表每一个结点的值存在vector里。然后首尾比較。时间复杂度O(n)。空间复杂度O(n)。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool isPalindrome(ListNode* head) {
vector<int> temp;
ListNode* ptr = head;
while(ptr!=NULL)
{
temp.push_back(ptr->val);
ptr = ptr->next;
}
int n = temp.size();
for(int i = 0; i < n/2; i++)
{
if(temp[i] != temp[n-1-i])
return false;
}
return true;
}
};