LeetCode【108. 将有序数组转换为二叉搜索树】

时间:2022-08-07 21:07:47

又是二叉树,最开始都忘记了二叉搜索树是什么意思,搜索了一下:

二叉搜索树:左节点都小于右节点,在这里就可以考虑将数组中的中间值作为根节点

平衡二叉树:就是左右节点高度不大于1

树就可以想到递归与迭代,平衡二叉树就只需要每个节点都是平衡二叉树,不断取中点作为root。

不是很需要考虑二叉搜索树,因为给的数组就是有序数组。

class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return test(nums,0,nums.length-1);
}
public TreeNode test(int[] nums,int left,int right)
{
if(left > right)
{
return null;
}
int mid = (left + right)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = test(nums,left,mid-1);
root.right = test(nums,mid+1,right);
return root;
}
}