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) { vectortemp; 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; } };