import java.util.*;
public class Solution
{
public static TreeNode<Integer> find(ArrayList<Integer> list,int i,int j){
if(i > j)return null;
int mid = i+(j-i)/2;
TreeNode<Integer> root = new TreeNode<Integer>(list.get(mid));
root.left = find(list, i, mid-1);
root.right = find(list, mid+1, j);
return root;
}
public static TreeNode<Integer> sortedListToBST(Node<Integer> head)
{
// Write your code here.
ArrayList<Integer> list = new ArrayList<>();
Node<Integer> temp = head;
while(temp != null){
list.add(temp.data);
temp = temp.next;
}
return find(list,0,list.size()-1);
}
}





