leetcode力扣刷题打卡
*题目:2130. 链表最大孪生和
描述:在一个大小为 n 且 n 为 偶数 的链表中,对于 0 <= i <= (n / 2) - 1 的 i ,第 i 个节点(下标从 0 开始)的孪生节点为第 (n-1-i) 个节点 。
比方说,n = 4 那么节点 0 是节点 3 的孪生节点,节点 1 是节点 2 的孪生节点。这是长度为 n = 4 的链表中所有的孪生节点。
孪生和 定义为一个节点和它孪生节点两者值之和。
给你一个长度为偶数的链表的头节点 head ,请你返回链表的 最大孪生和 。
解题思路
1、数组存储链表节点值;
2、比较最大孪生和;
原代码##
class Solution {
public:
int pairSum(ListNode* head) {
vector<int>v;
while (head) {
v.emplace_back(head->val);
head = head->next;
}
int sum = 0, ans = 0, n = v.size();
for (int i = 0; i < n / 2; ++i) {
sum = v[i] + v[n - 1 - i];
ans = max(ans, sum);
}
return ans;
}
};