跳至主要內容

2130. 链表最大孪生和

T4mako算法链表双指针小于 1 分钟

2130. 链表最大孪生和

中等

题目描述open in new window

解题思路:
使用 快慢指针
慢指针和快指针初始都指向head
慢指针将数逐个加入到数组中,快指针步长为 2 right = right.next.next
当 right 为 null 时,慢指针指向第 size/2 + 1 个数

class Solution {
    public int pairSum(ListNode head) {
        ListNode left = head;
        ListNode right = head;
        int res = 0;
        ArrayList<Integer> list = new ArrayList<>();
        while (right != null){
            list.add(left.val);
            left = left.next;
            right = right.next.next;
        }
        int i = list.size() - 1;
        while (left != null){
            res = Math.max(list.get(i--) + left.val,res);
            left = left.next;
        }
        return res;
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5