我正在研究"将分类数组转换为具有最小高度的二进制搜索树",其中提出:
给定排序(递增顺序)数组,将其转换为创建具有最小高度的二叉树.
我无法找到为什么我的递归不会像我预期的那样停止.它应该在7通过时停止,并且不会再打印7.我也找到了类似的答案,它看起来像我的使用相同的策略,但它工作正常.(我不认为我的问题与上面列出的问题重复,但我仍然要感谢你为我们链接它们.他们给了我更多的想法来解决我的问题.)
我的代码如下:
public TreeNode sortedArrayToBST(int[] A) {
int len = A.length;
if(len <= 0){
return null;
}
TreeNode root = new TreeNode(A[(len - 1) / 2]);
if(len == 1){
return root;
}
else{
helper(root, A, 0, len - 1);
}
return root;
}
public void helper(TreeNode root, int[] A, int leftPoint, int rightPoint){
if((rightPoint - leftPoint) <= 0){
return;
}
int mid = (rightPoint - leftPoint) / 2 + leftPoint;
int leftChild = (mid - 1 - leftPoint) …Run Code Online (Sandbox Code Playgroud)