程式語言 - LeetCode - C++ - 2130. Maximum Twin Sum of a Linked List



題目:


解答:

/**
 * 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;
    }
};