定义类为引用数据类型,都是传递的地址,
这两个代码的 a(Node node)函数本质上相同,
为什么第二种不能不能添加链表节点
希望 大_佬指点一二 \抱拳\抱拳\抱拳
Node 类
package Tree;
/**
* 文件名: Node
* 创建者: 白微我neng近
* 创建时间:2022/2/9 22:13
*/
public class Node<T> {
public Node nextNode = null;
}
第一种通过node.nextnode = new Node() 可以添加
package Tree;
/**
* 文件名:test
* 创建者:白微我neng近
* 创建时间:2022/2/13 2:25
* 说明:
*/
public class Test {
public int a(Node node) {
if (node.nextNode==null){
node.nextNode = new Node();
return 0;
}
a(node.nextNode);
return 0;
}
public static void main(String[] args) {
Test t = new Test();
Node node = new Node();
t.a(node);
System.out.println(node);
t.a(node);
System.out.println(node.nextNode);
}
}
运行结果为如下,头节点和下一节点地址不同,节点添加成功
Tree.Node@4eec7777
Tree.Node@3b07d329
第二种情况
package Tree;
/**
* 文件名:test
* 创建者:白微我neng近
* 创建时间:2022/2/13 2:25
* 说明:
*/
public class Test {
public int a(Node node) {
if(node==null){
node = new Node();
return 0;
}
a(node.nextNode);
return 0;
}
public static void main(String[] args) {
Test t = new Test();
Node node = new Node();
t.a(node);
System.out.println(node);
t.a(node);
System.out.println(node.nextNode);
}
}
运行结果如下,第一个节点正常,第二个节点为 null
Tree.Node@4eec7777
null
为什么第二种写法不能添加节点呢,本质上不是一样的吗,希望 大_佬指点一二;