Leetcode69场双周赛-第二题5961.链表最大孪生和

5961. 链表最大孪生和

题目描述

Leetcode69场双周赛-第二题5961.链表最大孪生和

 Leetcode69场双周赛-第二题5961.链表最大孪生和

 Leetcode69场双周赛-第二题5961.链表最大孪生和

解题思路

开始的时候,可能想到快慢指针、想到栈等等,但后来发现,只需要将链表中的数字转存到ArrayList里面,然后遍历,遍历到一半,统计一个最大值就可以了。

解题代码


import java.util.ArrayList;

class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

    ListNode(int val) {
        this.val = val;
    }

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}

public class Solution5961 {
    public int pairSum(ListNode head) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        ListNode p = head;

        while (p != null) {
            arrayList.add(p.val);
            p = p.next;
        }

        int n = arrayList.size();
        int res = Integer.MIN_VALUE;
        for (int i = 0; i <= (n / 2) - 1; i++) {
            res = Math.max(res, arrayList.get(i) + arrayList.get((n - 1 - i)));
        }

        return res;
    }
}

解题结果

 Leetcode69场双周赛-第二题5961.链表最大孪生和

 

上一篇:【Leetcode刷题笔记之链表篇】206. 反转链表


下一篇:Remove Duplicates from Unsorted List