我一直在尝试创建一个递归方法来创建一个完整的二叉搜索树。此方法返回对这棵树的根的引用。作为参数,我传递了树的深度以及存储在当前子树根中的数字。当深度为 0 和 1 时,我已经设法为 2 种基本情况提供解决方案,但是当我尝试使用大于 1 的数字时,我只能正确实例化 0 级和 1 级,但不能正确实例化下一个。任何帮助都会很棒
public class BinaryNode {
private int data;
private BinaryNode left, right;
public BinaryNode(int initialData, BinaryNode initialLeft,
        BinaryNode initialRight) {
    data = initialData;
    left = initialLeft;
    right = initialRight;
}
   public static BinaryNode BSTFactory(int top,int depth) {
    BinaryNode root=new BinaryNode(top,null,null);
    BinaryNode leftChild,rightChild;
    if(depth==0)
        //return root;
    if(depth==1){
        //create 2 children left and right
        leftChild=new BinaryNode(top-1,null,null);
        rightChild=new BinaryNode(top+1,null,null);
        root=new BinaryNode(top,leftChild,rightChild);
        //return root;
    }
    if(depth>1){
        leftChild=BSTFactory(top-1,depth-1);
        rightChild=BSTFactory(top+1,depth-1);
        root=new BinaryNode(top,leftChild,rightChild);
        //return root;
    }
    return root;
}
   public class Applications {
public static void main(String[] args){
    BinaryNode root2=BinaryNode.BSTFactory(8, 2);
System.out.println(root2.toString());
   }
}
  This is the output:
  data: 8
  8's left: data: 7
  7's left: null
  7's right: null
  8's right: data: 9
  9's left: null
  9's right: null