✅Java Solution || Recursion || 0ms 100% Faster 🔥🔥🔥 || Beginner Friendly
If you really found my solution helpful please upvote it, as it motivates me to post such kind of codes and help the coding community, if you have some queries 
**If you really found my solution helpful please upvote it, as it motivates me to post such kind of codes and help the coding community, if you have some queries or some improvements please feel free to comment and share your views.**\n```\n    public TreeNode sortedArrayToBST(int[] nums) {\n        return CreateBST(nums, 0, nums.length - 1);\n    }\n\n    private TreeNode CreateBST(int nums[], int l, int r) {\n        if (l > r) { // Base Condition or Recursion Stoping Condition\n            return null;\n        }\n        // so basically in this question we have to convert sorted array to height\n        // balanced tree\n        // so if we directly create tree in given sorted order it will become linked\n        // list\n        // so we have to take middle element as head value such it will become height\n        // balanced tree\n        int mid = l + (r - l) / 2; // this is the formula to find mid value\n        TreeNode root = new TreeNode(nums[mid]); // mid value or median\n        root.left = CreateBST(nums, l, mid - 1); // assign the value for left of subtree that is l to mid -1 for given\n                                                 // array\n        root.right = CreateBST(nums, mid + 1, r); // assign the value for right go subtree that is mid+1 to r for given\n                                                  // array\n        return root;\n    }\n```
['Recursion', 'Binary Tree', 'Java']