My code is not working

import java.util.*;
public class Main {
static Scanner obj=new Scanner(System.in);
private class Node
{
Node left;
Node right;
int data;
}
private Node root=null;
Main(int arr[])
{
this.root=construct(arr,0,arr.length-1);
}
public Node construct(int arr[],int lo,int hi)
{
if(lo>hi)
{
return null;
}
int mid=(lo+hi)/2;
Node nn=new Node();
nn.data=arr[mid];

	nn.left=construct(arr,lo,mid-1);
	nn.right=construct(arr,mid+1,hi);
	return nn;
}
public void preorder()
{
	this.preorder(this.root);
}
private void preorder(Node node)
{
	if(node==null)
	{
		return;
	}
	System.out.print(node.data+" ");
	preorder(node.left);
	preorder(node.right);
}
public void display(int arr[],int r1,int r2)
{
    Arrays.sort(arr);
    System.out.println();
	for(int i=0;i<arr.length;i++)
	{
		if(arr[i]>=r1&& arr[i]<=r2)
		{
			System.out.print(arr[i]+" ");
		}
	}
}
public static void main(String args[])
{
	int t=obj.nextInt();
	while(t-->0)
	{
		int n=obj.nextInt();
		int arr[]=new int[n];
		for(int i=0;i<n;i++)
		{
			arr[i]=obj.nextInt();
		}
		Arrays.sort(arr);
		int r1=obj.nextInt();
		int r2=obj.nextInt();
		Main tree=new Main(arr);
		tree.preorder();
		tree.display(arr,r1,r2);
	}
}

}

Hey @Zainul17192
You are doing Wrong
Don’t use Arrays.sort(arr);
because Root Node is change
Manually add nodes data from the array to the tree.

still i m not getting the answer

@Zainul17192
Send me updataed code