例如,在下面向 BST 添加节点的函数中,我只使用了隐式引用。我可以在函数开始时明确声明一个变量 TreenNode node = ..,并在适当的地方使用它。现在,我不知道它是否基于意见。真诚地使用 OPTION1 而不是 OPTION2 有任何优点或缺点
选项1:
public void add(int item) {
if (root == null) {
root = new TreeNode(null, item, null);
return;
}
TreeNode node = root;
while (true) {
if (item < node.item) {
if (node.left == null) {
node.left = new TreeNode(null, item, null);
break;
}
node = node.left;
} else {
if (node.right == null) {
node.right = new TreeNode(null, item, null);
break;
}
node = node.right;
}
}
}
选项 2:
public void add(int item) {
TreeNode nodeNew = new TreeNode(null, item, null); // explicit
if (root == null) {
root = nodeNew;
return;
}
TreeNode node = root;
while (true) {
if (item < node.item) {
if (node.left == null) {
node.left = nodeNew;
break;
}
node = node.left;
} else {
if (node.right == null) {
node.right = nodeNew;
break;
}
node = node.right;
}
}
}