小编X. *_*nda的帖子

将排序数组转换为二进制搜索树

我正在研究"将分类数组转换为具有最小高度的二进制搜索树",其中提出:

给定排序(递增顺序)数组,将其转换为创建具有最小高度的二叉树.

我无法找到为什么我的递归不会像我预期的那样停止.它应该在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)

java algorithm binary-tree

8
推荐指数
1
解决办法
693
查看次数

标签 统计

algorithm ×1

binary-tree ×1

java ×1