每日一题
-
将有序数组转换为二叉搜索树
-
二叉搜索树的中序遍历是升序遍历,因为给定的数组是升序的,所以可以保证数组转化为二叉树是中序遍历
然后我们需要在数组中选出一个根节点,这里我们采用中间最左边的为根节点,然后创建中序遍历二叉树
-
方法如下
class Answer{ public TreeNode sortArrayToBST(int nums[]){ return method(nums,0,nums.length-1); } public TreeNode method(int [] nums,int left,int right){ if(left>right){ return null; } int mid=(left+right+1)/2;//将中间的左边那个作为二叉树的根节点 TreeNode root = new TreeNode(nums[mid]); root.left=method(nums,left,mid-1); root.right=method(nums,mid+1,right); return root; } }