LeetCode 234 | 回文链表
题目
题解
- 将链表的问题转化为数组问题,然后利用双指针解决,花了O(n)空间
/**
* 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) {
if(!head->next)return true;
vector<int> v;
while(head){
v.push_back(head->val);
head=head->next;
}
auto right=v.size()-1;
int left=0;
while(left<right){
if(v[left]!=v[right])return false;
else{
left++;
right--;
}
}
return true;
}
};
2.原地修改,代码以后补上