根始终为空。
这不是家庭作业,只是想扩大我的知识面。我尝试以递归方式将节点插入二叉树。我在这里做了一些搜索,但每个实现都是如此不同,这些更改都没有用。
这是我的BinaryTree类:
public class BinaryTree {
static Node root;
public static void insertNode(int data){
if(root != null){
root.printData();
insertNew(root, new Node(data));
}else{
root = insertNew(root, new Node(data));
}
}
private static Node insertNew(Node current, Node n){
if(current == null){
return n;
}else if(current.data > n.data){
current.left = insertNew(current.left, n);
return current;
}else if(current.data < n.data){
current.right = insertNew(current.right, n);
return current;
}
return current;
}
public static void main(String[] args){
insertNode(9);
}
}
这是我的节点:
class Node {
int data;
Node left;
Node right;
Node(int data){
this.data = data;
}
public int printData(){
System.out.println(this.data);
return this.data;
}
}
每次运行时,它都假定root为null。我的工作代码中有调试打印行,所以我可以告诉我在这些方法中的位置。它每次都会点击if
函数中的第一个insertNew()
。
我想从概念上理解我失败的地方。