老师您好,想问一下插入操作的私有方法为什么要返回根节点呢,我写了一个void方法,不知道可不可以
来源:6-2 二分搜索树基础
慕工程2252263
2019-02-16
private void add(Node root, E data){
if (root == null){
root = new Node(data);
return ;
}
if (data.compareTo(root.data) < 0){
add(root.leftChild, data);
}else if(data.compareTo(root.data) > 0){
add(root.rightChild, data);
}
}
不过目前有一个问题是当我用调用这个方法的时候,通过调试我发现我的二叉树对象的root总是为null,我不是已经判断在root为null时new一个node了吗,为什么每次添加元素后二叉树对象的root还是null呢
写回答
1回答
-
liuyubobobo
2019-02-16
完全是这个问题,可以参考这里:https://coding.imooc.com/learn/questiondetail/94099.html
针对你的叙述,要注意:你在这个add函数中的root变量,和类声明中的root不是一个变量!add函数中的root是传进来的函数参数,根据变量的作用域原则,会覆盖类定义中的root:)
继续加油!:)
032019-02-16
相似问题