目录
题目:
示例:
分析:
代码:
题目:
示例:
分析:
题目让我们求出链表的最大孪生和,那么什么是孪生和呢,就是对称的节点就是孪生节点,他们的和就是孪生和。
比如第一个节点的孪生节点就是最后一个节点,第二个节点的孪生节点是倒数第二个节点。
并且题目保证节点数为偶数,所以每个节点都会有孪生节点。
那么我们只需要遍历链表,然后把每个节点的值拿出来存放到容器里,然后再遍历一边容器的前半段求出链表的最大孪生和即可。
代码:
class Solution {
public:int pairSum(ListNode* head) {vector<int>tempVal;while(head!=nullptr){tempVal.push_back(head->val);head=head->next;}int res=0;int n=tempVal.size();for(int i=0;i<n/2;i++){res=max(res,tempVal[i]+tempVal[n-1-i]);}return res;}
};