给你一个单链表的头节点 head
,请你判断该链表是否为
回文链表
。如果是,返回 true
;否则,返回 false
。
示例 1:
输入:head = [1,2,2,1] 输出:true
示例 2:
输入:head = [1,2] 输出:false
思路:把链表结点的元素复制到数组中,然后双指针比较。
class Solution {
public:
bool isPalindrome(ListNode* head) {
vector<int> nums;
while(head!=NULL)
{
nums.push_back(head->val);
head=head->next;
}
for(int i=0,j=nums.size()-1;i<j;i++,j--)
{
if(nums[i]!=nums[j])
return false;
}
return true;
}
};