blob: 1b08a0cd4e36dc2b18fe7f547a1c1eb9a0fb2bd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include "leetcode.h"
class Solution {
public:
bool isPalindrome(ListNode *head) {
ListNode *slow = head, *fast = head, *prev, *temp;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
}
prev = slow;
slow = slow->next;
prev->next = NULL;
while (slow) {
temp = slow->next;
slow->next = prev;
prev = slow;
slow = temp
}
fast = head;
slow = prev;
while (slow) {
if (fast->val != slow->val)
return false;
else {
fast = fast->next;
slow = slow->next;
}
}
return true;
}
};
|