题目:简单题
给定一个升序数组,转化为平衡二叉搜索树。 平衡:左右子树之差不大于1
思路:
本题的重点是平衡二字。所以可以以数组的中心为根节点,之后递归进行操作即可。
代码:
/**
*
* @param num int整型一维数组
* @return TreeNode类
*/
public TreeNode sortedArrayToBST (int[] num) {
// write code here
return dp(num,0,num.length-1);
}
public TreeNode dp(int num[],int left,int right){
if(left > right){
return null;
}
int val=(left+right)/2;
TreeNode root=new TreeNode(num[val]);
root.left=dp(num,left,val-1);
root.right=dp(num,val+1,right);
return root;
}
}