提问人:Shivansh Singhal 提问时间:12/6/2022 最后编辑:HariHaravelanShivansh Singhal 更新时间:12/7/2022 访问量:44
我无法理解为什么所有递归调用的父引用变量值在 parent=n 完成后会发生变化?
I am not able to understand why parent reference variable value of all recursive calls changes as soon as parent=n is done?
问:
Node parent;
private int size;
public void addNodes() {
if (size == 0) {
Node n = new Node(sc.nextInt());
parent = n;
root = n;
size++;
}
System.out.println("Does " + parent.data + " have a left node");
if (sc.nextBoolean()) {
Node n = new Node(sc.nextInt());
parent.left = n;
parent = n;
addNodes();
}
System.out.println("Does " + parent.data + " have a right node?");
if (sc.nextBoolean()) {
Node n = new Node(sc.nextInt());
parent.right = n;
parent = n;
addNodes();
}
}
我不明白为什么所有递归调用的引用变量值在完成后都会发生变化。parent
parent = n
如果有任何疑问,只需运行该程序即可。我尝试创建一个二叉树并使用递归对其进行初始化。
答: 暂无答案
评论
父
引用变量值...只有一个值,因为它是一个字段,而不是一个变量。如果有任何疑问,只需运行该程序即可。你没有发布一个程序,只是一段代码。