我想用java写个二叉树 以下是其中一部分:public class binaryTree {
class node{
int value;
node left;
node right;
}
node root=null;
//一下是函数
......
......
}其中我想做插入,但是不好使,我经过调试 已经把不好使的原因定在一个点上了,一下是简单化的代码: public void insertNode(node p, node n){
p=n;
}
public void insert(int num){
node newNode=new node();
newNode.value=num;
newNode.left=newNode.right=null;
insertNode(root,newNode);
}
以上的代码只是插入的部分,我做调试用的。
现在的问题是这样 目前只考虑 就加一个节点到root上,但为什么后来测试root总是空的。
也就是在 insert()里 root那个参数 传不到 insertNode()这里
如果我要是把 insertNode()里的 p换成root 那么 新节点就能插入到root了。但是 我传参数传的就是root啊, p就应该是root啊,为什么就不好使呢。
请大家帮助,谢谢!
class node{
int value;
node left;
node right;
}
node root=null;
//一下是函数
......
......
}其中我想做插入,但是不好使,我经过调试 已经把不好使的原因定在一个点上了,一下是简单化的代码: public void insertNode(node p, node n){
p=n;
}
public void insert(int num){
node newNode=new node();
newNode.value=num;
newNode.left=newNode.right=null;
insertNode(root,newNode);
}
以上的代码只是插入的部分,我做调试用的。
现在的问题是这样 目前只考虑 就加一个节点到root上,但为什么后来测试root总是空的。
也就是在 insert()里 root那个参数 传不到 insertNode()这里
如果我要是把 insertNode()里的 p换成root 那么 新节点就能插入到root了。但是 我传参数传的就是root啊, p就应该是root啊,为什么就不好使呢。
请大家帮助,谢谢!
解决方案 »
- 我的connection.rollback()为什么必须用try..catch
- 运行java程序时出现错误!!
- 我用Java编了一个八数码游戏,请各位高手帮忙看看有什么问题,谢谢了
- 一个很简单的问题~~关于调用方法的
- 一道面试题
- JSplitPane的定位问题
- 请问怎么往JBuilder自带的DataStore数据库【或别的数据库】中插入Image对象?
- 线程通信问题,急!!!!!!!!!!!!!
- 我想控制java 程序运行的权限,policy文件是否有此功能。
- 关于JTABLE 的问题,大家能帮忙看一下吗,我挺急 谢谢大家
- 高分两个问题求教,关于JDBC与储存文件!
- 关于Swing的问题...求大牛指点迷津....
{
public static void fun(int num1, int num2)
{
num1 = num2;
}
public static void main(String[] args)
{
int num1 = 1;
int num2 = 2;
fun(num1, num2);
System.out.println(num1); //函数内部只是对形参进行了修改,对实参无影响,所以打印出来的num1还是1,不是2
}
}
你要在函数内部对形参的对象进行修改的话,你必须对对象的属性进行修改,而不是对其本身进行修改,下面这个例子能够好的说明问题public class Test
{
public static void copy(MyStruct struct1, MyStruct struct2)
{
struct1 = struct2;
}
public static void copy2(MyStruct struct1, MyStruct struct2)
{
struct1.num = struct2.num;
}
public static void main(String[] args)
{
MyStruct struct1 = new MyStruct(1);
MyStruct struct2 = new MyStruct(2);
copy(struct1, struct2); //这种方法无法正确赋值
System.out.println(struct1);
copy2(struct1, struct2); //这种方法才能正确赋值
System.out.println(struct1);
}
}class MyStruct
{
public int num;
public MyStruct(int num)
{
this.num = num;
}
public String toString()
{
return String.valueOf(num);
}
}