2130. Maximum Twin Sum of a Linked List (M)
Amazon OA
Last updated
Was this helpful?
Amazon OA
Last updated
Was this helpful?
In a linked list of size n
, where n
is even, the ith
node (0-indexed) of the linked list is known as the twin of the (n-1-i)th
node, if 0 <= i <= (n / 2) - 1
.
For example, if n = 4
, then node 0
is the twin of node 3
, and node 1
is the twin of node 2
. These are the only nodes with twins for n = 4
.
The twin sum is defined as the sum of a node and its twin.
Given the head
of a linked list with even length, return the maximum twin sum of the linked list.
Example 1:
Example 2:
Example 3:
Constraints:
The number of nodes in the list is an even integer in the range [2, 105]
.
1 <= Node.val <= 105
step 4 : if needed, restore the structure of the linked list back - O(N) time again
step 1 : count the number of nodes in the list - O(N) time step 2 : break the list from middle and reverse the second half of linked list - O(N) time and O(1) space if we ignore recursion step 3 : after step 2 above, the lists would be like 1-->4 and 2-->3 now, this is as good as traversing two lists simultaneously and computing the sums and checking for max - O(N) time