題目:

解答:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
int pairSum(ListNode* head) {
int r;
int n;
int val[100000];
n = 0;
while (head) {
val[n++] = head->val;
head = head->next;
}
r = -INT_MAX;
for (int i = 0; i < (n >> 1); i++) {
r = max(val[i] + val[n - 1 - i], r);
}
return r;
}
};