/**
* Definition for singly-linked list.
* class ListNode {
* public int val;
* public ListNode next;
* ListNode(int x) { val = x; next = null; }
* }
*/
public class Solution {
public static ListNode insertBegin(ListNode head2,int x){
ListNode temp = new ListNode(x);
temp.next = head2;
return temp;
}
public static int lenLL(ListNode A){
ListNode curr = A;
int length = 0;
while(curr != null){
length++;
curr = curr.next;
}
return length;
}
public static int solve(ListNode A, int B) {
ListNode curr = A;
int lenOfLL = lenLL(A);
int midPos = (lenOfLL / 2) + 1;
int pos = 1;
while(curr != null){
if(pos == midPos){
curr.next = null;
break;
}
else{
curr = curr.next;
pos++;
continue;
}
}
ListNode head2 = null;
ListNode curr2 = A;
while(curr2 != null){
head2 = insertBegin(head2,curr2.val);
curr2 = curr2.next;
}
int finalVal = 0;
if(B < pos){
ListNode curr3 = head2;
int newPos = 1;
while(curr3 != null){
if(newPos == (B + 1)){
finalVal = curr3.val;
break;
//return curr3.val;
}
else{
curr3 = curr3.next;
newPos++;
continue;
}
}
}
else if(B >= pos){
finalVal = -1;
//return - 1;
}
return finalVal;
}
}