您的位置:首页 > 其它

Convert Sorted Array to Binary Search Tree With Minimal Height

2016-07-01 05:31 351 查看
Givenasorted(increasingorder)array,Convertittocreateabinarytreewithminimalheight.

Example

Given
[1,2,3,4,5,6,7]
,return

4
/\
26
/\/\
1357

分析:
这是一道非常明显的递归题。取array的中间数作为树的root,array左边部分是左子树部分,array右边部分是右子树部分。


/**
*DefinitionofTreeNode:
*publicclassTreeNode{
*publicintval;
*publicTreeNodeleft,right;
*publicTreeNode(intval){
*this.val=val;
*this.left=this.right=null;
*}
*}
*/
publicclassSolution{
/**
*@paramA:anintegerarray
*@return:atreenode
*cnblogs.com/beiyeqingteng/
*/
publicTreeNodesortedArrayToBST(int[]A){
if(A==null||A.length==0)returnnull;
returnhelper(A,0,A.length-1);
}

publicTreeNodehelper(int[]A,inti,intj){
if(i==j){
returnnewTreeNode(A[i]);
}elseif(i>j){
returnnull;
}else{
intmid=i+(j-i)/2;
TreeNoderoot=newTreeNode(A[mid]);
root.left=helper(A,i,mid-1);
root.right=helper(A,mid+1,j);
returnroot;
}
}
}


转载请注明出处:cnblogs.com/beiyeqingteng/



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: