该方法假定需要两个参数一个用于深度,另一个用于树的根的整数值。例如:对于任何给定的N,返回深度为N的完整二分搜索树的根引用,使得节点存储整数1,2,...,2 N + 1 - 1。我努力做到这一点。这里是我的:通过Java方法递归生成一个完整的二叉树
public static BinaryNode BSTFactory(int top,int depth) {
BinaryNode root=new BinaryNode(null,null,top);
BinaryNode leftChild,rightChild;
if(depth==0){
return root;
}
if(depth==1){
//create 2 children left and right
leftChild=new BinaryNode(null,null,top-1);
rightChild=new BinaryNode(null,null,top+1);
root=new BinaryNode(rightChild,leftChild,top);
return root;
}
if(depth>1){
leftChild=BSTFactory(top-1,depth-1);
rightChild=BSTFactory(top+1,depth-1);
root=new BinaryNode(rightChild,leftChild,top);
return root;
}
return root;
}
会发生什么情况?你能指望什么? – StilesCrisis 2014-10-29 18:49:43
该方法适用于深度为0和1的2个基本情况,但对于任何更大的情况它都不起作用。我一定会把事情搞乱,但我似乎无法弄清楚它是什么。 – sudoMan13 2014-10-29 19:00:10
你知道如何使用调试器吗?您需要简单地浏览代码并观察发生的情况。 – StilesCrisis 2014-10-29 19:13:48