題目:

解答:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
int pairSum(struct ListNode *head)
{
int r = 0;
int c0 = 0;
int cnt = 0;
int val[100000] = { 0 };
if (head == NULL) {
return 0;
}
while (head) {
val[cnt++] = head->val;
head = head->next;
}
for (c0 = 0; c0 < (cnt >> 1); c0++) {
int t = val[c0] + val[cnt - c0 - 1];
if (t > r) {
r = t;
}
}
return r;
}