Relink过程中可以换工作吗?# EB23 - 劳工卡
h*o
1 楼
进行到第三次的build的时候,beg,end应该分别 为 2,1,此时应该返回,为什么 end
是3呢。。。
看了许久了,请大家帮忙看看问题在哪儿
public static TreeNode buildBST(int[] preorder){
if(preorder.length==0)
return null;
return buildBST(preorder,0, preorder.length-1);
}
public static TreeNode buildBST(int[] preorder, int beg, int end){
if(beg>end)
return null;
//System.out.println(beg+" "+end);
TreeNode root=new TreeNode(preorder[beg]);
int index=-1;
for(int i=beg;i<=end;i++){
if(preorder[i]>root.val){
index=i;
break;
}
}
//System.out.println(index);
root.left=buildBST(preorder, beg+1, index-1);
root.right=buildBST(preorder, index, end);
return root;
}
是3呢。。。
看了许久了,请大家帮忙看看问题在哪儿
public static TreeNode buildBST(int[] preorder){
if(preorder.length==0)
return null;
return buildBST(preorder,0, preorder.length-1);
}
public static TreeNode buildBST(int[] preorder, int beg, int end){
if(beg>end)
return null;
//System.out.println(beg+" "+end);
TreeNode root=new TreeNode(preorder[beg]);
int index=-1;
for(int i=beg;i<=end;i++){
if(preorder[i]>root.val){
index=i;
break;
}
}
//System.out.println(index);
root.left=buildBST(preorder, beg+1, index-1);
root.right=buildBST(preorder, index, end);
return root;
}