1.题目
2.思路
链表转数组
(1)遍历链表,把所有节点值放进 ArrayList。
(2)n = size,只遍历前半段 i = 0 … n/2-1
(3)计算每对 arr[i] + arr[n-1-i],维护最大值。
Java 里 ArrayList 不能用 list[i] 这种数组下标访问,要用list.get(i)去取元素
3.代码实现
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */classSolution{publicintpairSum(ListNodehead){ArrayList<Integer>list=newArrayList<>();while(head!=null){list.add(head.val);head=head.next;}intn=list.size();intm=n/2;intsum=0;for(inti=0;i<m;i++){sum=Math.max(sum,list.get(i)+list.get(n-i-1));}returnsum;}}