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 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;
}
};
