链表的回文结构
判断一个链表否为回文结构。
示例:
1->2->2->1
返回:true
bool chkPalindrome(ListNode* A) {
// write code here
struct ListNode* pre, * next, * cur, * fast, * slow;
if (A == NULL) {
return NULL;
}
fast = slow = A;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
}
pre = NULL;
cur = slow;
while (cur) {
next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
cur = pre;
while (A && cur) {
if (A->val != cur->val) {
return false;
}
A = A->next;
cur = cur->next;
}
return true;}