题目
给你一个单链表的头节点 head
,请你判断该链表是否为回文链表。如果是,返回 true
;否则,返回 false
。
示例
思路
定义一个数组,保存链表的节点值,将题目转换为判断数组是否为回文数组
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool isPalindrome(struct ListNode* head){
int ans[500000];
int ans_len = 0;
while(head)
{
ans[ans_len++] = head->val;
head = head->next;
}
int i = 0;
ans_len--;
while(i < ans_len)
{
if(ans[i] != ans[ans_len])
{
return false;
}
i++;
ans_len--;
}
return true;
}